/// <summary> /// Binds the edit fa. /// </summary> /// <param name="masterId">The master identifier.</param> /// <returns></returns> private async Task<FAREditRequestViewModel> BindEditFA(int masterId) { FAREditRequestViewModel farRequest = new FAREditRequestViewModel(); var master = await MasterRepository.SingleAsync(masterId); if (master != null) { farRequest.Analyst = master.Analyst; farRequest.BUId = master.BUId; farRequest.FARNumber = master.Number; farRequest.FailureDesc = master.FailureDesc; farRequest.FailureOriginId = master.FailureOriginId; farRequest.FailureRate = master.FailureRate; farRequest.FailureTypeId = master.FailureTypeId; farRequest.Id = masterId; farRequest.InitialReportTargetDate = master.InitialReportTargetDate; farRequest.FinalReportTargetDate = master.FinalReportTargetDate; farRequest.OriginId = master.OriginId; farRequest.PriorityId = master.PriorityId; farRequest.Product = master.Product; farRequest.RefNo = master.RefNo; farRequest.RequestDate = master.RequestDate; farRequest.Requestor = master.Requestor; farRequest.SamplesArriveDate = master.SamplesArriveDate; farRequest.StatusId = master.StatusId; farRequest.Customer = master.Customer; farRequest.LabSiteId = master.LabSiteId; farRequest.Submitted = master.Submitted; farRequest.Site = this.Site; farRequest.LastUpdate = master.LastUpdate; } farRequest.Users = (await UserRepository.GetAllAsync()).Where(w => w.RoleId == (int)RoleType.ANALYST); farRequest.Origins = await OriginRepository.GetAllAsync(); farRequest.Status = await StatusRepository.GetAllAsync(); farRequest.BUs = await BuRepository.GetAllAsync(); farRequest.FailureTypes = await FailureTypeRepository.GetAllAsync(); farRequest.FailureOrigins = await FailureOriginRepository.GetAllAsync(); farRequest.Priorities = await PriorityRepository.GetAllAsync(); farRequest.ReasonClose = await ReasonFARCloseRepository.GetAllAsync(); farRequest.LabSites = await LabSiteRepository.GetAllAsync(); farRequest.Rates = await RatingRep.GetAllAsync(); //Get all files in folder master with id string folderMaster = System.IO.Path.Combine(Server.MapPath("~/Upload"), masterId.ToString().PadLeft(10, '0')); if (System.IO.Directory.Exists(folderMaster)) { string[] files = System.IO.Directory.GetFiles(folderMaster); string json = string.Empty; foreach (string file in files) { json += "<a href=" + Url.Action("DownloadTemp", "Upload", new { id = masterId, file = System.IO.Path.GetFileName(file) }) + ">" + System.IO.Path.GetFileName(file) + "</a>" + "<br/>"; } farRequest.Reports = json; } if (farRequest.Reports == null) farRequest.Reports = String.Empty; farRequest.EnableSubmit = ProcessHisRep.CheckExistProcess(masterId); return farRequest; }
public async Task<JsonResult> ReEditFA(int id, FAREditRequestViewModel farRequest, string btnSubmit) { var bind = await BindEditFA(id); #region Execute button Recall if (btnSubmit == "Recall") { //Find master by id var master = MasterRepository.Single(id); master.Submitted = false; var updateResult = MasterRepository.Update(master); if (updateResult == Model.SaveResult.SUCCESS) { Response.StatusCode = (int)HttpStatusCode.OK; return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "RE01" } }; } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "RE02" } }; } } #endregion bool isSubmit = false; farRequest.Id = id; switch (btnSubmit) { case "Save": break; case "Submit": isSubmit = ProcessHisRep.CheckExistProcess(id); break; } #region button Save or Submit execute FARMasterDto add = new FARMasterDto { Id = id, Number = farRequest.FARNumber, OriginId = farRequest.OriginId, Requestor = farRequest.Requestor, RefNo = farRequest.RefNo, FailureTypeId = farRequest.FailureTypeId, FailureOriginId = farRequest.FailureOriginId, FailureRate = farRequest.FailureRate, RequestDate = farRequest.RequestDate, SamplesArriveDate = null, PriorityId = farRequest.PriorityId, BUId = farRequest.BUId, Product = farRequest.Product, LabSiteId = farRequest.LabSiteId, InitialReportTargetDate = farRequest.InitialReportTargetDate, FinalReportTargetDate = farRequest.FinalReportTargetDate, FailureDesc = farRequest.FailureDesc, Analyst = bind.Analyst, StatusId = farRequest.StatusId, Customer = farRequest.Customer, Comments = String.Empty, LastUpdatedBy = this.CurrentName, Submitted = isSubmit, }; var result = await MasterRepository.UpdateAsync(add); if (result == Model.SaveResult.SUCCESS) { if (isSubmit) { string emailToAddress = GetManagers(); string emailSubject = "New FA Request"; string ebody = "FA Number: " + farRequest.FARNumber + " has been added to your queue. Please login to FA DB for your review and Analyst assignment."; string emailBody = string.Format("{0}<br><br>{1}", ebody, DateTime.Now.ToShortDateString()); try { Mail.Send(emailToAddress, emailSubject, ebody); } catch (Exception ex) { LogService.Error(ex.Message, ex); } } Response.StatusCode = (int)HttpStatusCode.OK; if (btnSubmit == "Submit") { if (isSubmit) { return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "SB01" } }; } else { return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "SB02" } }; } } if (btnSubmit == "Save") { return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "SV01" } }; } } #endregion Response.StatusCode = (int)HttpStatusCode.BadRequest; return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "04" } }; }