public override async Task <int> UpdateModel(int Id, SizeRange Model) { int updated = await this.UpdateAsync(Id, Model); HashSet <int> relatedSizes = new HashSet <int>(this.RelatedSizeService.DbSet .Where(p => p.SizeRangeId.Equals(Id)) .Select(p => p.Id)); foreach (int relatedSize in relatedSizes) { RelatedSize rs = Model.RelatedSizes.FirstOrDefault(prop => prop.Id.Equals(relatedSize)); if (rs == null) { await this.RelatedSizeService.DeleteModel(relatedSize); } } foreach (RelatedSize relatedSize in Model.RelatedSizes) { if (relatedSize.Id.Equals(0)) { await this.RelatedSizeService.CreateModel(relatedSize); } } return(updated); }
public SizeRange MapToModel(SizeRangeViewModel viewModel) { SizeRange model = new SizeRange(); model.RelatedSizes = new List <RelatedSize>(); PropertyCopier <SizeRangeViewModel, SizeRange> .Copy(viewModel, model); foreach (RelatedSizeViewModel relatedSizeVM in viewModel.RelatedSizes) { RelatedSize relatedSize = new RelatedSize(); PropertyCopier <RelatedSizeViewModel, RelatedSize> .Copy(relatedSizeVM, relatedSize); relatedSize.SizeId = relatedSizeVM.Size.Id; model.RelatedSizes.Add(relatedSize); } return(model); }
public Task <RelatedSize> GetTestRelatedSize(int id) { RelatedSize testRelatedSize = RelatedSizeService.DbSet.FirstOrDefault(rs => rs.Code == "Test"); if (testRelatedSize != null) { return(Task.FromResult(testRelatedSize)); } else { testRelatedSize = new RelatedSize() { Code = "Test", SizeId = id }; RelatedSizeService.Create(testRelatedSize); return(RelatedSizeService.GetAsync(testRelatedSize.Id)); } }