/// <summary> /// Binds the analyst dashboard. /// </summary> /// <param name="masterId">The identifier master.</param> /// <returns></returns> private async Task<AnaRequestViewModel> BindAnalystDashboard(int masterId) { FARMasterDto master = await MasterRepository.SingleAsync(masterId); if (master == null) return null; var request = await BindRequestDashboard(); var farRequest = new AnaRequestViewModel(); farRequest.Id = masterId; farRequest.Analyst = master.Analyst; farRequest.BUId = master.BUId; farRequest.FailureDesc = master.FailureDesc; farRequest.FailureOriginId = master.FailureOriginId; farRequest.FailureRate = master.FailureRate; farRequest.FailureTypeId = master.FailureTypeId; farRequest.FARNumber = master.Number; farRequest.FinalReportTargetDate = master.FinalReportTargetDate; farRequest.InitialReportTargetDate = master.InitialReportTargetDate; 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.Submitted = master.Submitted; farRequest.Origins = request.Origins; farRequest.Status = request.Status; farRequest.BUs = request.BUs; farRequest.FailureTypes = request.FailureTypes; farRequest.FailureOrigins = request.FailureOrigins; farRequest.Priorities = request.Priorities; farRequest.Site = request.Site; farRequest.InitialReason = await ReasonChangingINITargetRepository.GetAllAsync(); //reason; farRequest.FinalReason = await ReasonChangingFINTargetRepository.GetAllAsync();// reason; farRequest.OnHoldReason = await ReasonFAROnHoldRepository.GetAllAsync(); var userRequestor = UserRepository.CheckExistEmail(request.Requestor); if (userRequestor != null) farRequest.Site = userRequestor.Sites.Name; var userAnalyst = UserRepository.CheckExistEmail(master.Analyst); if (userAnalyst != null) farRequest.UserId = userAnalyst.Id; farRequest.Users = (await UserRepository.GetAllAsync()).Where(w => w.RoleId == (int)RoleType.ANALYST || w.RoleId == (int)RoleType.MANAGER); farRequest.Status = await StatusRepository.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; return farRequest; }
public async Task<JsonResult> AnaEditFA(int id, string btnSubmit, AnaRequestViewModel viewmodel) { var master = await MasterRepository.SingleAsync(id); if (btnSubmit == "Release") { master.StatusId = (int)StatusType.ONGOING; var update = MasterRepository.Update(master); if (update == Model.SaveResult.SUCCESS) { Response.StatusCode = (int)HttpStatusCode.OK; return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "RL01" } }; } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "RL02" } }; } } if (master != null) { if (viewmodel.InitialReportTargetDate != master.InitialReportTargetDate) { //Write log FARInitialTargetLogDto logIni = new FARInitialTargetLogDto { MasterId = id, ReasonId = viewmodel.InitialReasonId, TargetDate = viewmodel.InitialReportTargetDate, LastUpdatedBy = this.CurrentName, }; InitialTargetLogRepository.Add(logIni); } if (viewmodel.FinalReportTargetDate != master.FinalReportTargetDate) { //Write log FARFinalTargetLogDto logFinal = new FARFinalTargetLogDto { MasterId = id, ReasonId = viewmodel.FinalReasonId, TargetDate = viewmodel.FinalReportTargetDate, LastUpdatedBy = this.CurrentName, }; FinalTargetLogRepository.Add(logFinal); } master.SamplesArriveDate = viewmodel.SamplesArriveDate; var reportType = ReportTypesRepository.GetAll(); if (viewmodel.InitialReportTargetDate == null) master.InitialReportTargetDate = viewmodel.SamplesArriveDate.Value.AddDays(reportType.Single(x => x.Id == (int)ReportType.INITIAL).DaysAfter); else master.InitialReportTargetDate = viewmodel.InitialReportTargetDate; if (viewmodel.FinalReportTargetDate == null) master.FinalReportTargetDate = viewmodel.SamplesArriveDate.Value.AddDays(reportType.Single(x => x.Id == (int)ReportType.FINAL).DaysAfter); else master.FinalReportTargetDate = viewmodel.FinalReportTargetDate; master.LastUpdatedBy = this.CurrentName; var result = await MasterRepository.UpdateAsync(master); if (result == Model.SaveResult.SUCCESS) { Response.StatusCode = (int)HttpStatusCode.OK; return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "ED01", initialDate = master.InitialReportTargetDate.HasValue ? master.InitialReportTargetDate.Value.ToString("MM/dd/yyyy") : "", finalDate = master.FinalReportTargetDate.HasValue ? master.FinalReportTargetDate.Value.ToString("MM/dd/yyyy") : "" } }; } } Response.StatusCode = (int)HttpStatusCode.BadRequest; return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { code = "ED02" } }; }