コード例 #1
0
        /// <summary>
        /// Deletes the asynchronous.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public async Task<SaveResult> DeleteAsync(FARMasterDto entity)
        {
            SaveResult result = SaveResult.FAILURE;

            try
            {
                using (FailureAnalysisEntities context = new FailureAnalysisEntities())
                {
                    var master = context.FAR_Master.Single(x => x.Id == entity.Id && x.IsDeleted == false);
                    master.IsDeleted = true;
                    master.LastUpdate = DateTime.Now;
                    master.LastUpdatedBy = entity.LastUpdatedBy;

                    context.Entry<FAR_Master>(master).State = System.Data.Entity.EntityState.Modified;
                    result = await context.SaveChangesAsync() > 0 ? SaveResult.SUCCESS : SaveResult.FAILURE;
                }
            }
            catch (Exception ex)
            {
                _logService.Error(ex.Message, ex);
                result = SaveResult.FAILURE;
            }

            return result;
        }
コード例 #2
0
        /// <summary>
        /// Adds the master asynchronous.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public async Task<int> AddMasterAsync(FARMasterDto entity)
        {
            int result = 0;
            try
            {
                using (FailureAnalysisEntities context = new FailureAnalysisEntities())
                {
                    FAR_Master add = context.FAR_Master.Create();

                    add.Number = entity.Number;
                    add.OriginId = entity.OriginId;
                    add.Requestor = entity.Requestor;
                    add.RefNo = entity.RefNo;
                    add.FailureTypeId = entity.FailureTypeId;
                    add.FailureOriginId = entity.FailureOriginId;
                    add.FailureRate = entity.FailureRate;
                    add.StatusId = entity.StatusId;
                    add.Analyst = entity.Analyst;
                    add.RequestDate = entity.RequestDate;
                    add.SamplesArriveDate = entity.SamplesArriveDate;
                    add.PriorityId = entity.PriorityId;
                    add.InitialReportTargetDate = entity.InitialReportTargetDate;
                    add.BUId = entity.BUId;
                    add.Product = entity.Product;
                    add.FailureDesc = entity.FailureDesc;
                    add.FinalReportTargetDate = entity.FinalReportTargetDate;
                    add.Submitted = entity.Submitted;
                    add.Customer = entity.Customer;
                    add.LabSiteId = entity.LabSiteId;
                    add.RatingId = entity.RatingId;
                    add.Comments = entity.Comments;
                    add.IsDeleted = entity.IsDeleted;
                    add.LastUpdatedBy = entity.LastUpdatedBy;
                    add.LastUpdate = DateTime.Now;

                    context.Entry<FAR_Master>(add).State = System.Data.Entity.EntityState.Added;
                    await context.SaveChangesAsync();
                    result = add.Id;
                }
            }
            catch (Exception ex)
            {
                _logService.Error(ex.Message, ex);
                result = 0;
            }
            return result;
        }
コード例 #3
0
        public async Task<JsonResult> NewRequest(string btnSubmit, FARRequestViewModel viewmodel)
        {
            if (!ModelState.IsValid)
            {
                var bind = await BindRequestDashboard();
                bind.BUId = viewmodel.BUId;
                bind.OriginId = viewmodel.OriginId;
                bind.FailureTypeId = viewmodel.FailureTypeId;
                bind.StatusId = viewmodel.StatusId;
                bind.PriorityId = viewmodel.PriorityId;
                bind.LabSiteId = viewmodel.LabSiteId;
                Response.StatusCode = (int)HttpStatusCode.NotAcceptable;
                return new JsonResult()
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new { result = "invalidate" }
                };
            }

            string suffix = (await OriginRepository.SingleAsync(viewmodel.OriginId)).Name;
            var newFARNumber = GeneralFARNumber(suffix);
            bool isSubmit = false;
            switch (btnSubmit)
            {
                case "Save":
                    isSubmit = false;
                    break;
                case "Submit":
                    isSubmit = true;
                    break;
            }
            FARMasterDto master = new FARMasterDto()
            {
                Number = newFARNumber,
                OriginId = viewmodel.OriginId,
                Requestor = viewmodel.Requestor,
                RefNo = viewmodel.RefNo,
                FailureTypeId = viewmodel.FailureTypeId,
                FailureOriginId = viewmodel.FailureOriginId,
                FailureRate = viewmodel.FailureRate,
                StatusId = (int)StatusType.OPEN,
                LabSiteId = viewmodel.LabSiteId,
                RequestDate = viewmodel.RequestDate,
                SamplesArriveDate = viewmodel.SamplesArriveDate,
                PriorityId = viewmodel.PriorityId,
                BUId = viewmodel.BUId,
                Product = viewmodel.Product,
                FailureDesc = viewmodel.FailureDesc,
                Customer = viewmodel.Customer,
                LastUpdatedBy = this.CurrentName,
                Submitted = isSubmit,

                //Enhancement
                Comments = String.Empty
            };

            //Enhancement
            if (!String.IsNullOrEmpty(viewmodel.Product))
            {
                try
                {
                    //var products = ProductRepository.FindByName(viewmodel.Product);
                    //Enhacement https://mail.google.com/mail/u/0/?tab=wm#inbox/1549ffc4556acdc7
                    var products = ProductRepository.FindByNameAndLabSite(viewmodel.Product, viewmodel.LabSiteId);
                    if (products != null && products.Count() > 0)
                    {
                        var product = products.First();
                        if (!String.IsNullOrEmpty(product.MainPerson))
                            master.Analyst = product.MainPerson;
                        else
                            if (!String.IsNullOrEmpty(product.SecondaryPerson))
                                master.Analyst = product.SecondaryPerson;
                            else
                                if (!String.IsNullOrEmpty(product.TertiaryPerson))
                                    master.Analyst = product.TertiaryPerson;
                    }
                }
                catch (Exception ex)
                {
                    LogService.Error(ex.Message, ex);
                }
            }
            //End Enhancement #18

            var result = await MasterRepository.AddMasterAsync(master);
            if (result > 0)
            {

                if (!String.IsNullOrEmpty(master.Analyst))
                {
                    //SendMail
                    string emailSubject = "FA Request " + master.Number + " has been assigned to you";
                    string ebody = "You have been assigned by " + this.CurrentName + " to oversee FA Number: " + master.Number + ". Please login to FA DB to update its details.";
                    string emailBody = string.Format("{0}<br><br>{1}", ebody, DateTime.Now.ToShortDateString());
                    Mail.Send(master.Analyst, emailSubject, ebody);
                }

                //Copy all files temp tp folder id master, and remove all file temp
                string filesTemp = System.IO.Path.Combine(Server.MapPath("~/Upload/Temp"), viewmodel.Gu);
                if (System.IO.Directory.Exists(filesTemp))
                {
                    //get all files
                    string[] files = System.IO.Directory.GetFiles(filesTemp);
                    string folderMaster = System.IO.Path.Combine(Server.MapPath("~/Upload"), result.ToString().PadLeft(10, '0'));
                    if (!System.IO.Directory.Exists(folderMaster))
                        System.IO.Directory.CreateDirectory(folderMaster);

                    foreach (string file in files)
                    {
                        System.IO.File.Copy(file, System.IO.Path.Combine(folderMaster, System.IO.Path.GetFileName(file)));
                        System.IO.File.Delete(file);
                    }

                    //Remove all file temp
                    System.IO.Directory.Delete(filesTemp);
                }
                Response.StatusCode = (int)HttpStatusCode.OK;
                return new JsonResult()
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new { code = result }
                };
            }
            else
            {
                var bind = await BindRequestDashboard();
                bind.BUId = viewmodel.BUId;
                bind.OriginId = viewmodel.OriginId;
                bind.FailureTypeId = viewmodel.FailureTypeId;
                bind.StatusId = viewmodel.StatusId;
                bind.PriorityId = viewmodel.PriorityId;
                bind.LabSiteId = viewmodel.LabSiteId;

                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return new JsonResult()
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new { result = "Failure" }
                };
            }
        }
コード例 #4
0
        /// <summary>
        /// Updates the asynchronous.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public async Task<SaveResult> UpdateAsync(FARMasterDto entity)
        {
            SaveResult result = SaveResult.FAILURE;

            try
            {
                using (FailureAnalysisEntities context = new FailureAnalysisEntities())
                {
                    var entry = context.FAR_Master.Single(x => x.Id == entity.Id && x.IsDeleted == false);

                    entry.Number = entity.Number;
                    entry.OriginId = entity.OriginId;
                    entry.Requestor = entity.Requestor;
                    entry.RefNo = entity.RefNo;
                    entry.FailureTypeId = entity.FailureTypeId;
                    entry.FailureOriginId = entity.FailureOriginId;
                    entry.FailureRate = entity.FailureRate;
                    entry.StatusId = entity.StatusId;
                    entry.Analyst = entity.Analyst;
                    entry.RequestDate = entity.RequestDate;
                    entry.SamplesArriveDate = entity.SamplesArriveDate;
                    entry.PriorityId = entity.PriorityId;
                    entry.InitialReportTargetDate = entity.InitialReportTargetDate;
                    entry.BUId = entity.BUId;
                    entry.Product = entity.Product;
                    entry.FailureDesc = entity.FailureDesc;
                    entry.FinalReportTargetDate = entity.FinalReportTargetDate;
                    entry.Submitted = entity.Submitted;
                    entry.Customer = entity.Customer;
                    entry.LabSiteId = entity.LabSiteId;
                    entry.RatingId = entity.RatingId;
                    entry.Comments = entity.Comments;
                    entry.IsDeleted = entity.IsDeleted;
                    entry.LastUpdatedBy = entity.LastUpdatedBy;
                    entry.LastUpdate = DateTime.Now;

                    context.Entry<FAR_Master>(entry).State = System.Data.Entity.EntityState.Modified;
                    result = await context.SaveChangesAsync() > 0 ? SaveResult.SUCCESS : SaveResult.FAILURE;
                }
            }
            catch (Exception ex)
            {
                _logService.Error(ex.Message, ex);
                result = SaveResult.FAILURE;
            }

            return result;
        }
コード例 #5
0
        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" }
            };
        }