public static ProductSuiteDto ToDto(this ProductSuite suite) { suite.Versions?.ForEach(v => v.SuiteId = suite.Id); var dto = new ProductSuiteDto { CategoryId = suite.CategoryId, UniqueId = suite.UniqueId, Name = suite.Name, Versions = suite.Versions?.Select(v => v.ToDto()).ToList() }; ((IData)suite).ToDto((IDataDto)dto); return(dto); }
public static ProductSuite ToDomain(this ProductSuiteDto suite, ProductSuite originalsuite = null) { suite.Versions?.ForEach(v => v.SuiteId = suite.Id); if (originalsuite != null && originalsuite.UniqueId == suite.UniqueId) { originalsuite.Name = suite.Name; originalsuite.CategoryId = suite.CategoryId; originalsuite.Versions = suite.Versions?.Select(v => v.ToDomain(originalsuite?.Versions.FirstOrDefault(ov => ov.UniqueId == v.UniqueId))).ToList(); //foreach (var version in suite.Versions ?? Enumerable.Empty<ProductVersionDto>()) //{ // var original = originalsuite.Versions.SingleOrDefault(l => l.Id == version.Id); // if (original != null) // { // var updatedOriginal = version.ToDomain(original); // var index = originalsuite.Versions.IndexOf(original); // originalsuite.Versions[index] = updatedOriginal; // } // else // { // var Domainlayout = version.ToDomain(); // originalsuite.Versions.Add(Domainlayout); // } //} ((IDataDto)suite).ToDomain((IData)originalsuite); return(originalsuite); } var data = new ProductSuite { UniqueId = suite.UniqueId, Name = suite.Name, CategoryId = suite.CategoryId, Versions = suite.Versions?.Select(v => v.ToDomain()).ToList(), }; ((IDataDto)suite).ToDomain((IData)data); return(data); }
public void Post() { try { using (var server = TestServer.Create <MyStartup>()) { var dto = new ProductSuiteDto { Id = 2, Name = "Product Suite 5", CategoryId = 1 }; HttpResponseMessage response; response = server.HttpClient.PostAsJsonAsync("api/ProductSuite", dto).Result; } } catch (Exception ex) { } }
public void PostwithDependents() { try { using (var server = TestServer.Create <MyStartup>()) { var dto = new ProductSuiteDto { Id = 4, Name = "Product Suite 5", UniqueId = new Guid("8537c238-c6f2-434f-8af4-c2b506e021be"), CategoryId = 1, Versions = new List <ProductVersionDto> { new ProductVersionDto { Id = 0, UniqueId = Guid.NewGuid(), StartDate = DateTime.Today, EndDate = DateTime.Today.AddDays(7) }, new ProductVersionDto { Id = 0, UniqueId = Guid.NewGuid(), StartDate = DateTime.Today.AddDays(8), EndDate = DateTime.Today.AddDays(14) } } }; HttpResponseMessage response; response = server.HttpClient.PostAsJsonAsync("api/ProductSuite/Dependents/", dto).Result; } } catch (Exception ex) { } }