public override void SetModel(dynamic entity) { if (entity is ManufacturersBussinessItemsViewModel) { ManufacturersBussinessItemsViewModel model = (ManufacturersBussinessItemsViewModel)entity; BindingFromModel(model, this); ManufacturersName = Manufacturers.Name; } else { if (entity is ManufacturersBussinessItems) { ManufacturersBussinessItems data = (ManufacturersBussinessItems)entity; BindingFromModel(data, this); ManufacturersName = data.Manufacturers.Name; } else { if (entity is SupplierTranscationItem) { SupplierTranscationItem data = (SupplierTranscationItem)entity; BindingFromModel(data, this); BindingFromModel(data.ManufacturersBussinessItems, this); } } } }
public override void SaveModel() { SupplierTranscationItem data = new SupplierTranscationItem(); CopyToModel(data, this); var result = controller.CreateOrUpdate(data); if (result.HasError) { Errors = result.Errors; HasError = result.HasError; } Refresh(); }
public override void Query() { if (ProjectId != null && ProjectId != Guid.Empty) { var executed_result = controller.Query(p => p.ProjectId == ProjectId); if (!executed_result.HasError) { SupplierTranscationItem data = executed_result.Result.Single(); BindingFromModel(data, this); if (data.ManufacturersBussinessItems != null) { BindingFromModel(data.ManufacturersBussinessItems, this); } } } }
public override void SaveModel() { try { SuppliersController controller = new SuppliersController(); if (Items.Any()) { foreach (var item in Items) { SupplierTranscationItem data = new SupplierTranscationItem(); CopyToModel(data, item); data.ManufacturersBussinessItemsId = item.Id; data.PlaceofReceipt = item.PlaceofReceipt; data.ProjectId = item.ProjectId; controller.CreateOrUpdate(data); } } } catch (Exception ex) { setErrortoModel(this, ex); } }
public override ExecuteResultEntity <Projects> Update(Projects fromModel, bool isLastRecord = true) { try { var repo = RepositoryHelper.GetProjectsRepository(); database = repo.UnitOfWork; var original = (from q in repo.All() where q.Id == fromModel.Id select q).Single(); if (original != null) { CheckAndUpdateValue(fromModel, original); var toDel = original.ProjectContract.Select(s => s.Id).Except(fromModel.ProjectContract.Select(s => s.Id)).ToList(); var toAdd = fromModel.ProjectContract.Select(s => s.Id).Except(original.ProjectContract.Select(s => s.Id)).ToList(); var samerows = original.ProjectContract.Select(s => s.Id).Intersect(fromModel.ProjectContract.Select(s => s.Id)).ToList(); Stack <ProjectContract> RemoveStack = new Stack <ProjectContract>(); Stack <ProjectContract> AddStack = new Stack <ProjectContract>(); foreach (var delitem in toDel) { RemoveStack.Push(original.ProjectContract.Where(w => w.Id == delitem).Single()); } foreach (var additem in toAdd) { AddStack.Push(fromModel.ProjectContract.Where(w => w.Id == additem).Single()); } while (RemoveStack.Count > 0) { original.ProjectContract.Remove(RemoveStack.Pop()); } while (AddStack.Count > 0) { original.ProjectContract.Add(AddStack.Pop()); } foreach (var sameitem in samerows) { ProjectContract Source = fromModel.ProjectContract.Where(w => w.Id == sameitem).Single(); ProjectContract Target = original.ProjectContract.Where(w => w.Id == sameitem).Single(); CheckAndUpdateValue(Source, Target); } var toDelBI = original.SupplierTranscationItem.Select(s => new { s.ProjectId, s.ManufacturersBussinessItemsId }) .Except(fromModel.SupplierTranscationItem.Select(s => new { s.ProjectId, s.ManufacturersBussinessItemsId })).ToList(); var toAddBI = fromModel.SupplierTranscationItem.Select(s => new { s.ProjectId, s.ManufacturersBussinessItemsId }).Except(original.SupplierTranscationItem.Select(s => new { s.ProjectId, s.ManufacturersBussinessItemsId })).ToList(); var samerowsBI = original.SupplierTranscationItem.Select(s => new { s.ProjectId, s.ManufacturersBussinessItemsId }).Intersect(fromModel.SupplierTranscationItem.Select(s => new { s.ProjectId, s.ManufacturersBussinessItemsId })).ToList(); Stack <SupplierTranscationItem> RemoveStackBI = new Stack <SupplierTranscationItem>(); Stack <SupplierTranscationItem> AddStackBI = new Stack <SupplierTranscationItem>(); foreach (var delitem in toDelBI) { RemoveStackBI.Push(original.SupplierTranscationItem.Where(w => w.ProjectId == delitem.ProjectId && w.ManufacturersBussinessItemsId == delitem.ManufacturersBussinessItemsId).Single()); } foreach (var additem in toAddBI) { AddStackBI.Push(fromModel.SupplierTranscationItem.Where(w => w.ProjectId == additem.ProjectId && w.ManufacturersBussinessItemsId == additem.ManufacturersBussinessItemsId).Single()); } while (RemoveStackBI.Count > 0) { original.SupplierTranscationItem.Remove(RemoveStackBI.Pop()); } while (AddStackBI.Count > 0) { original.SupplierTranscationItem.Add(AddStackBI.Pop()); } foreach (var sameitem in samerowsBI) { SupplierTranscationItem Source = fromModel.SupplierTranscationItem.Where(w => w.ProjectId == sameitem.ProjectId && w.ManufacturersBussinessItemsId == sameitem.ManufacturersBussinessItemsId).Single(); SupplierTranscationItem Target = original.SupplierTranscationItem.Where(w => w.ProjectId == sameitem.ProjectId && w.ManufacturersBussinessItemsId == sameitem.ManufacturersBussinessItemsId).Single(); CheckAndUpdateValue(Source, Target); } #region 施工圖集 var toDel3 = original.ConstructionAtlas.Select(s => s.Id).Except(fromModel.ConstructionAtlas.Select(s => s.Id)).ToList(); var toAdd3 = fromModel.ConstructionAtlas.Select(s => s.Id).Except(original.ConstructionAtlas.Select(s => s.Id)).ToList(); var samerows3 = original.ConstructionAtlas.Select(s => s.Id).Intersect(fromModel.ConstructionAtlas.Select(s => s.Id)).ToList(); Stack <ConstructionAtlas> RemoveStack3 = new Stack <ConstructionAtlas>(); Stack <ConstructionAtlas> AddStack3 = new Stack <ConstructionAtlas>(); foreach (var delitem in toDel3) { RemoveStack3.Push(original.ConstructionAtlas.Where(w => w.Id == delitem).Single()); } foreach (var additem in toAdd3) { AddStack3.Push(fromModel.ConstructionAtlas.Where(w => w.Id == additem).Single()); } while (RemoveStack3.Count > 0) { original.ConstructionAtlas.Remove(RemoveStack3.Pop()); } while (AddStack3.Count > 0) { original.ConstructionAtlas.Add(AddStack3.Pop()); } foreach (var sameitem in samerows) { try { ConstructionAtlas Source = fromModel.ConstructionAtlas.Where(w => w.Id == sameitem).Single(); ConstructionAtlas Target = original.ConstructionAtlas.Where(w => w.Id == sameitem).Single(); CheckAndUpdateValue(Source, Target); } catch { continue; } } #endregion repo.UnitOfWork.Commit(); } fromModel = repo.Get(original.Id); return(ExecuteResultEntity <Projects> .CreateResultEntity(fromModel)); } catch (Exception ex) { return(ExecuteResultEntity <Projects> .CreateErrorResultEntity(ex)); } }
public override void SaveModel() { Projects data = new Projects(); if (Status.IsNewInstance) { data.Id = Guid.NewGuid(); } CopyToModel(data, this); if (ProjectContract != null) { foreach (ProjectContractViewModel model in ProjectContract) { if (model != null) { ProjectContract pcdata = new ProjectContract(); CopyToModel(pcdata, model); pcdata.ProjectId = data.Id; data.ProjectContract.Add(pcdata); } } } if (ConstructionAtlas.Any()) { foreach (ConstructionAtlasViewModel model in ConstructionAtlas) { ConstructionAtlas entity = new ConstructionAtlas(); CopyToModel(entity, model); entity.ProjectContractId = data.Id; data.ConstructionAtlas.Add(entity); } } if (Suppliers != null) { if (Suppliers.Any()) { foreach (var supplier in Suppliers) { SupplierTranscationItem supplierdata = new SupplierTranscationItem(); supplierdata.PlaceofReceipt = supplier.PlaceofReceipt; supplierdata.ManufacturersBussinessItemsId = supplier.Id; supplierdata.ProjectId = data.Id; data.SupplierTranscationItem.Add(supplierdata); } } } var result = _projectcontroller.CreateOrUpdate(data); if (result.HasError) { Errors = result.Errors; } Query(data.Id); }