Skip to content

Commit

Permalink
OIZ-58 first pass at wiring up the dataset service to the controllers
Browse files Browse the repository at this point in the history
  • Loading branch information
Nityan Khanna committed May 7, 2018
1 parent 3b6044f commit caaad70
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 3 deletions.
36 changes: 35 additions & 1 deletion OpenIZAdmin.Services/Dataset/DatasetService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@
*/
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
using OpenIZ.Core.Model.Entities;

namespace OpenIZAdmin.Services.Dataset
Expand All @@ -38,9 +40,41 @@ public class DatasetService : IDatasetService
/// <param name="instance">The instance.</param>
/// <returns>Returns the dataset.</returns>
/// <exception cref="NotImplementedException"></exception>
public DataInstallAction ConvertToDataset<T>(T instance) where T : Entity
public DatasetInstall ConvertToDataset<T>(T instance) where T : Entity
{
throw new NotImplementedException();
}

/// <summary>
/// Converts an entity or derived entity to a dataset instance.
/// </summary>
/// <param name="instance">The instance.</param>
/// <param name="type">The type.</param>
/// <returns>Returns the dataset.</returns>
/// <exception cref="NotImplementedException"></exception>
public DatasetInstall ConvertToDataset(object instance, Type type)
{
throw new NotImplementedException();
}

/// <summary>
/// Serializes the specified dataset install.
/// </summary>
/// <param name="datasetInstall">The dataset install.</param>
/// <returns>Returns the dataset install as an XML string.</returns>
public string Serialize(DatasetInstall datasetInstall)
{
var serializer = new XmlSerializer(typeof(DatasetInstall));

string result = null;

using (var stringWriter = new StringWriter())
{
serializer.Serialize(stringWriter, datasetInstall);
result = stringWriter.ToString();
}

return result;
}
}
}
17 changes: 16 additions & 1 deletion OpenIZAdmin.Services/Dataset/IDatasetService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,21 @@ public interface IDatasetService
/// <typeparam name="T">The type of instance to convert to a dataset.</typeparam>
/// <param name="instance">The instance.</param>
/// <returns>Returns the dataset.</returns>
DataInstallAction ConvertToDataset<T>(T instance) where T : Entity;
DatasetInstall ConvertToDataset<T>(T instance) where T : Entity;

/// <summary>
/// Converts an entity or derived entity to a dataset instance.
/// </summary>
/// <param name="instance">The instance.</param>
/// <param name="type">The type.</param>
/// <returns>Returns the dataset.</returns>
DatasetInstall ConvertToDataset(object instance, Type type);

/// <summary>
/// Serializes the specified dataset install.
/// </summary>
/// <param name="datasetInstall">The dataset install.</param>
/// <returns>Returns the dataset install as an XML string.</returns>
string Serialize(DatasetInstall datasetInstall);
}
}
19 changes: 18 additions & 1 deletion OpenIZAdmin/Controllers/MaterialController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
using System.Diagnostics;
using System.Linq;
using System.Web.Mvc;
using OpenIZAdmin.Services.Dataset;

namespace OpenIZAdmin.Controllers
{
Expand All @@ -56,6 +57,11 @@ public class MaterialController : Controller
/// </summary>
private readonly IConceptService conceptService;

/// <summary>
/// The dataset service.
/// </summary>
private readonly IDatasetService datasetService;

/// <summary>
/// The material service.
/// </summary>
Expand All @@ -82,12 +88,14 @@ public MaterialController()
/// Initializes a new instance of the <see cref="MaterialController" /> class.
/// </summary>
/// <param name="conceptService">The concept service.</param>
/// <param name="datasetService">The dataset service.</param>
/// <param name="entityService">The entity service.</param>
/// <param name="materialConceptService">The material concept service.</param>
/// <param name="userService">The user service.</param>
public MaterialController(IConceptService conceptService, IEntityService entityService, IMaterialConceptService materialConceptService, IUserService userService)
public MaterialController(IConceptService conceptService, IDatasetService datasetService, IEntityService entityService, IMaterialConceptService materialConceptService, IUserService userService)
{
this.conceptService = conceptService;
this.datasetService = datasetService;
this.entityService = entityService;
this.materialConceptService = materialConceptService;
this.userService = userService;
Expand Down Expand Up @@ -473,6 +481,15 @@ public ActionResult DownloadAsDataset(Guid id)
{
try
{
var material = this.entityService.Get<Material>(id);

if (material == null)
{
this.TempData["error"] = Locale.MaterialNotFound;
return RedirectToAction("ViewMaterial", "Material", id);
}

var dataset = this.datasetService.ConvertToDataset(material);

}
catch (Exception e)
Expand Down

0 comments on commit caaad70

Please sign in to comment.