public async Task <IActionResult> PutByNumber(int key, [FromBody] UnitsMeasure uUnitsMeasure) { if (uUnitsMeasure != null) { uUnitsMeasure.ModifyDate = DateTime.Now; uUnitsMeasure.Modifyer = uUnitsMeasure.Modifyer ?? "Someone"; return(new JsonResult(await this.repository.UpdateAsync(uUnitsMeasure, key), this.DefaultJsonSettings)); } return(NotFound(new { Error = "UnitsMeasure not found." })); }
public async Task <IActionResult> Post([FromBody] UnitsMeasure nUnitsMeasure) { if (nUnitsMeasure != null) { nUnitsMeasure.CreateDate = DateTime.Now; nUnitsMeasure.Creator = nUnitsMeasure.Creator ?? "Someone"; return(new JsonResult(await this.repository.AddAsync(nUnitsMeasure), this.DefaultJsonSettings)); } return(NotFound(new { Error = "UnitsMeasure not found." })); }
public async Task <IActionResult> PutByNumber(int key, [FromBody] JobCardMaster uJobCardMaster) { var Message = "ProjectMaster not found. "; try { if (uJobCardMaster != null) { // add hour to DateTime to set Asia/Bangkok uJobCardMaster = helpers.AddHourMethod(uJobCardMaster); uJobCardMaster.ModifyDate = DateTime.Now; uJobCardMaster.Modifyer = uJobCardMaster.Modifyer ?? "Someone"; if (uJobCardMaster.JobCardMasterStatus != JobCardMasterStatus.Complete) { uJobCardMaster.JobCardMasterStatus = uJobCardMaster.JobCardDetails.Any(x => x.JobCardDetailStatus == JobCardDetailStatus.Wait) ? JobCardMasterStatus.Wait : JobCardMasterStatus.InProcess; } if (uJobCardMaster.JobCardDetails != null) { foreach (var uDetail in uJobCardMaster.JobCardDetails) { if (uDetail.JobCardDetailId > 0) { uDetail.ModifyDate = uJobCardMaster.ModifyDate; uDetail.Modifyer = uJobCardMaster.Modifyer; } else { uDetail.CreateDate = uJobCardMaster.ModifyDate; uDetail.Creator = uJobCardMaster.Modifyer; uDetail.JobCardDetailStatus = JobCardDetailStatus.Wait; } // Insert UnitMeasure if (uDetail.UnitMeasureId < 1 && uDetail.UnitsMeasure != null) { var nUnitMeasure = new UnitsMeasure() { UnitMeasureId = uDetail.UnitsMeasure.UnitMeasureId, CreateDate = uDetail.UnitsMeasure.CreateDate, Creator = uDetail.UnitsMeasure.Creator, UnitMeasureName = uDetail.UnitsMeasure.UnitMeasureName, ModifyDate = uDetail.UnitsMeasure.ModifyDate, Modifyer = uDetail.UnitsMeasure.Modifyer }; if (nUnitMeasure != null) { nUnitMeasure.CreateDate = uJobCardMaster.ModifyDate; nUnitMeasure.Creator = uJobCardMaster.Modifyer; nUnitMeasure = await this.repositoryUom.AddAsync(nUnitMeasure); uDetail.UnitMeasureId = nUnitMeasure.UnitMeasureId; } } if (uDetail.CuttingPlanId < 1 && uDetail.CuttingPlan != null) { var nCuttingPlan = new CuttingPlan() { CreateDate = uDetail.CuttingPlan.CreateDate, Creator = uDetail.CuttingPlan.Creator, CuttingPlanId = uDetail.CuttingPlan.CuttingPlanId, CuttingPlanNo = uDetail.CuttingPlan.CuttingPlanNo, Description = uDetail.CuttingPlan.Description, MaterialGrade = uDetail.CuttingPlan.MaterialGrade, MaterialSize = uDetail.CuttingPlan.MaterialSize, ProjectCodeDetailId = uDetail.CuttingPlan.ProjectCodeDetailId, Quantity = uDetail.CuttingPlan.Quantity, TypeCuttingPlan = uDetail.CuttingPlan.TypeCuttingPlan }; if (nCuttingPlan != null) { nCuttingPlan.CreateDate = uJobCardMaster.ModifyDate; nCuttingPlan.Creator = uJobCardMaster.Modifyer; if (string.IsNullOrEmpty(nCuttingPlan.MaterialSize)) { nCuttingPlan.MaterialSize = uDetail.Material; } if (nCuttingPlan?.Quantity == null || nCuttingPlan?.Quantity < 1) { nCuttingPlan.Quantity = uDetail.Quality; } nCuttingPlan = await this.repositoryCut.AddAsync(nCuttingPlan); uDetail.CuttingPlanId = nCuttingPlan.CuttingPlanId; } } uDetail.CuttingPlan = null; uDetail.UnitsMeasure = null; } } // update Master not update Detail it need to update Detail directly var updateComplate = await this.repository.UpdateAsync(uJobCardMaster, key); if (updateComplate != null) { // filter Expression <Func <JobCardDetail, bool> > condition = m => m.JobCardMasterId == key; var dbDetails = this.repositoryDetail.FindAll(condition); //Remove Jo if edit remove it foreach (var dbDetail in dbDetails) { if (!uJobCardMaster.JobCardDetails.Any(x => x.JobCardDetailId == dbDetail.JobCardDetailId)) { await this.repositoryDetail.DeleteAsync(dbDetail.JobCardDetailId); } } //Update JobCardDetail or New JobCardDetail foreach (var uDetail in uJobCardMaster.JobCardDetails) { if (uDetail.JobCardDetailId > 0) { await this.repositoryDetail.UpdateAsync(uDetail, uDetail.JobCardDetailId); } else { if (uDetail.JobCardDetailId < 1) { uDetail.JobCardMasterId = uJobCardMaster.JobCardMasterId; } await this.repositoryDetail.AddAsync(uDetail); } } } return(new JsonResult(updateComplate, this.DefaultJsonSettings)); //return new JsonResult(await this.repository.UpdateAsync(uJobCardMaster, key), this.DefaultJsonSettings); } } catch (Exception ex) { Message = $"Has error {ex.ToString()}"; } return(NotFound(new { Error = Message })); }