public async Task <MaterialHead> Save(MaterialHead value, Guid?index) { var result = await appContext.MaterialHead.AddAsync(value); //save material await appContext.SaveChangesAsync(); // return(result.Entity); }
public async Task <Material> Save(Material value, MaterialHead valueHead, Guid?id) { //get branchId value.BranchId = value.CreatedBy.GetBranchOfCurrentUser(this.appContext); valueHead.BranchId = value.BranchId; var item = this.appContext.Material.FirstOrDefault(p => p.MaterialId == id); if (item != null) { item.GrpMaterialId = value.GrpMaterialId; item.MaterialCode = value.MaterialCode; item.MaterialName = value.MaterialName; item.Note = value.Note; item.UnitId = value.UnitId; var itemHead = this.appContext.MaterialHead.FirstOrDefault(p => p.MaterialId == id); itemHead.Price = valueHead.Price; itemHead.Note = valueHead.Note; itemHead.NumberHourse = valueHead.NumberHourse; itemHead.PriceAfterVAT = valueHead.PriceAfterVAT; itemHead.SellPrice = valueHead.SellPrice; itemHead.SpBeCourse = valueHead.SpBeCourse; itemHead.SpEnCourse = valueHead.SpEnCourse; itemHead.MaskPassCourse = valueHead.MaskPassCourse; itemHead.CalBeCourse = valueHead.CalBeCourse; itemHead.CalEnCourse = valueHead.CalEnCourse; itemHead.DocumentId = valueHead.DocumentId; } else { var result = await appContext.Material.AddAsync(value); await appContext.MaterialHead.AddAsync(valueHead); item = result.Entity; } await appContext.SaveChangesAsync(); return(item); }
public async Task <bool> SaveClone(Branch[] values, Guid userId) { try { foreach (var itemHead in values) { var itemExistD = this.appContext.MaterialBranch.FirstOrDefault( p => p.MaterialId == itemHead.MaterialId && p.BranchId == itemHead.BranchId); if (itemExistD != null) { //itemExistD.IsDeleted = !itemHead.IsExist; } else { // true: clone data if (itemHead.IsExist == true) { itemExistD = new MaterialBranch { MaterialBranchId = Guid.NewGuid(), BranchId = itemHead.BranchId, MaterialId = itemHead.MaterialId, CreatedBy = userId, CreatedDate = DateTime.Now, UpdatedBy = userId, UpdatedDate = DateTime.Now, IsDeleted = !itemHead.IsExist }; var mate = this.appContext.Material.FirstOrDefault(p => p.MaterialId == itemHead.MaterialId); if (mate != null) { // clone grpMaterial var grpIdNew = Guid.NewGuid(); var typeMaterialIdNew = Guid.NewGuid(); var grp = this.appContext.GrpMaterial.FirstOrDefault(p => p.GrpMaterialId == mate.GrpMaterialId); var grpNew = new GrpMaterial { GrpMaterialId = grpIdNew, GrpMaterialCode = grp.GrpMaterialCode, BranchId = itemHead.BranchId, GrpMaterialName = grp.GrpMaterialName, Note = grp.Note, CreatedBy = userId, UpdatedBy = userId, TypeMaterialId = typeMaterialIdNew, CreatedDate = DateTime.Now, UpdatedDate = DateTime.Now }; await appContext.GrpMaterial.AddAsync(grpNew); // clone typeMaterial var type = this.appContext.TypeMaterial.FirstOrDefault(p => p.TypeMaterialId == grp.TypeMaterialId); var typeNew = new TypeMaterial { TypeMaterialId = typeMaterialIdNew, TypeMaterialCode = type.TypeMaterialCode, BranchId = itemHead.BranchId, TypeMaterialName = type.TypeMaterialName, Note = type.Note, CreatedBy = userId, UpdatedBy = userId, CreatedDate = DateTime.Now, UpdatedDate = DateTime.Now, IsLearning = true, IsDocument = type.IsDocument, IsTest = type.IsTest, }; await appContext.TypeMaterial.AddAsync(typeNew); // clone material var materialIdNew = Guid.NewGuid(); var mateNew = new Material { MaterialId = materialIdNew, MaterialCode = mate.MaterialCode, GrpMaterialId = grpIdNew, MaterialName = mate.MaterialName, BranchId = itemHead.BranchId, Note = mate.Note, CreatedBy = userId, UpdatedBy = userId, CreatedDate = DateTime.Now, UpdatedDate = DateTime.Now }; await appContext.Material.AddAsync(mateNew); // clone material var mateH = this.appContext.MaterialHead.FirstOrDefault(p => p.MaterialId == mate.MaterialId); var mateHNew = new MaterialHead { MaterialHeadId = Guid.NewGuid(), MaterialId = materialIdNew, SellPrice = mateH.SellPrice, SellPriceAfterVAT = mateH.SellPriceAfterVAT, Price = mateH.Price, VAT = 0, PriceAfterVAT = mateH.PriceAfterVAT, WholePrice = mateH.WholePrice, WholePriceAfterVAT = mateH.WholePriceAfterVAT, BranchId = Guid.NewGuid(), CalBeCourse = mateH.CalBeCourse, CalEnCourse = mateH.CalEnCourse, SpBeCourse = mateH.SpBeCourse, SpEnCourse = mateH.SpEnCourse, NumberHourse = mateH.NumberHourse, DocumentId = mateH.DocumentId, MaskPassCourse = mateH.MaskPassCourse, CreatedDate = DateTime.Now, UpdatedDate = DateTime.Now, CreatedBy = userId, UpdatedBy = userId, }; await appContext.Material.AddAsync(mateNew); } await appContext.MaterialBranch.AddAsync(itemExistD); } } } return(await appContext.SaveChangesAsync() > 0); } catch (Exception ex) { throw ex; } }