Example #1
0
        public bool Save(CommonModelHelper model)
        {
            bool isSuccessful = true;

            try
            {
                var culturalItems = new List <string> {
                    "ActionDetails"
                };
                ModelBinder.SetCulturalValue(model.EstimationAction, model, culturalItems);
                model.EstimationAction.OperationDate = DateTime.Now;
                model.EstimationAction.Estimation    = _dbContext.Estimations.Find(model.EstimationAction.EstimationID);
                if (model.EstimationAction.ID == Guid.Empty)
                {
                    model.EstimationAction.ID = Guid.NewGuid();
                    _dbContext.EstimationActions.Add(model.EstimationAction);
                }
                else
                {
                    _dbContext.Entry(model.EstimationAction).State = EntityState.Modified;
                }
                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccessful = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "EstimationAction", message);
                throw new Exception(message);
            }
            return(isSuccessful);
        }
Example #2
0
 public HttpResponseMessage Save(CommonModelHelper model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             var estimationList = _service.Save(model);
             if (estimationList)
             {
                 return(Request.CreateResponse(HttpStatusCode.OK, estimationList));
             }
             else
             {
                 string message = "Error Saving Data";
                 return(Request.CreateErrorResponse(HttpStatusCode.Forbidden, message));
             }
         }
         catch (Exception ex)
         {
             return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
         }
     }
     else
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
     }
 }
Example #3
0
        public string ProcessTemplate(CommonModelHelper model, Company comapny, Estimation estimation)
        {
            var html  = System.IO.File.ReadAllText(HostingEnvironment.MapPath($"~/EmailTemplate/EstimationRequest_{model.Culture}.html"));
            var match = Regex.Matches(html, @"\[([A-Za-z0-9\-._]+)]", RegexOptions.IgnoreCase);

            foreach (var v in match)
            {
                var result         = string.Empty;
                var originalString = v.ToString();
                var x = v.ToString();
                x = x.Replace("[", "");
                x = x.Replace("]", "");
                if (x.Contains("Company"))
                {
                    var prop = x.Split('.')[1];
                    result = comapny.GetType().GetProperty(prop).GetValue(comapny, null)?.ToString();
                }
                else
                {
                    x      = x.Contains("_") ? x + model.Culture : x;
                    result = estimation.GetType().GetProperty(x).GetValue(estimation, null)?.ToString() ?? "";
                }
                html = html.Replace(originalString, result.ToString());
            }
            return(html);
        }
Example #4
0
        public bool SendRequest(CommonModelHelper model)
        {
            var flag         = true;
            var items        = new List <Company>();
            var emailService = new EmailService();

            try
            {
                var estimation = _dbContext.Estimations.Find(model.Estimation.ID);
                var histories  = _dbContext.EstimationRequestHistories.Where(h => h.EstimationID == model.Estimation.ID).ToList();
                var hids       = histories.Select(h => h.Company.ID).ToList();
                var checkedIds = model.CompanyModels.Select(h => h.ID).ToList();
                histories.ForEach(h =>
                {
                    if (!checkedIds.Contains(h.Company.ID))
                    {
                        _dbContext.EstimationRequestHistories.Remove(h);
                    }
                });
                model.CompanyModels.ForEach(cm =>
                {
                    var isExist = _dbContext.EstimationRequestHistories.Any(h => h.Company.ID == cm.ID);
                    var company = _dbContext.Companies.Find(cm.ID);
                    if (!isExist)
                    {
                        var obj = new EstimationRequestHistory
                        {
                            ID           = Guid.NewGuid(),
                            EstimationID = model.Estimation.ID,
                            CompanyID    = cm.ID,
                            Company      = company,
                            CreatedDate  = DateTime.Now,
                            CreatedBy    = model.CurrentUserID
                        };
                        _dbContext.EstimationRequestHistories.Add(obj);
                    }
                    if (!string.IsNullOrEmpty(company.Email))
                    {
                        items.Add(company);
                    }
                });
                _dbContext.SaveChanges();
                items.ForEach(i =>
                {
                    var subject = $"Estimation Request";
                    emailService.SendEmail(i.Email, null, null, subject, ProcessTemplate(model, i, estimation), null, true);
                });
            }
            catch (Exception ex)
            {
                flag = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "Company", message);
                throw new Exception(ex.Message);
            }
            return(flag);
        }
Example #5
0
        public bool Save(CommonModelHelper model)
        {
            var isSuccess = true;

            try
            {
                var culturalItems = new List <string> {
                    "CoordinatorPrecautions", "CoordinatorNotes", "NotesToStaff", "ComplainDetails", "AccountingRelatedMemo"
                };
                ModelBinder.SetCulturalValue(model.Order, model, culturalItems);
                model.Order.ApplicationID = model.ApplicationID;
                model.Order.OrderStatus   = (int)OrderStatus.Ordered;
                //Save Order
                if (model.Order.ID == Guid.Empty)
                {
                    model.Order.ID         = Guid.NewGuid();
                    model.Order.InvoiceNo  = GenerateInvoiceNo();
                    model.Order.Estimation = _dbContext.Estimations.Find(model.Estimation.ID);
                    model.Order.OrderNo    = GenerateOrderNo();
                    model.Order.CompanyID  = model.Estimation.ClientID;
                    model.Order.Company    = _dbContext.Companies.Find(model.Order.CompanyID);
                    _dbContext.Orders.Add(model.Order);
                }
                else
                {
                    _dbContext.Entry(model.Order).State = EntityState.Modified;
                }
                //Save or update Order details
                foreach (var item in model.OrderDetails)
                {
                    item.OrderID = model.Order.ID;
                    item.Order   = model.Order;
                    ModelBinder.ModifyGuidValue(item);
                    if (item.ID == Guid.Empty)
                    {
                        item.ID = Guid.NewGuid();
                        _dbContext.OrderDetails.Add(item);
                    }
                    else
                    {
                        _dbContext.Entry(item).State = EntityState.Modified;
                    }
                }
                //Update Estimation
                //_dbContext.Entry(model.Estimation).State = EntityState.Modified;
                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccess = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "OrderDetails", message);
                throw new Exception(message);
            }
            return(isSuccess);
        }
Example #6
0
 public HttpResponseMessage SendRequest(CommonModelHelper model)
 {
     try
     {
         var result = service.SendRequest(model);
         return(Request.CreateResponse(HttpStatusCode.OK, result));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.InnerException.Message));
     }
 }
Example #7
0
        public bool Save(CommonModelHelper model)
        {
            var isSuccessful = true;

            try
            {
                var culturalItems = new List <string> {
                    "BillingAddress", "ClientAddress", "BillingCompanyName", "DeliveryCompanyName", "DeliveryAddress", "Remarks"
                };
                ModelBinder.SetCulturalValue(model.Estimation, model, culturalItems);
                model.Estimation.EstimationNo     = GenerateEstimationNumber(model.ApplicationID);
                model.Estimation.EstimationType   = (int)EstimationType.OverheadCost;
                model.Estimation.EstimationStatus = (int)EstimationStatus.Ordered;
                ModelBinder.ModifyGuidValue(model.Estimation);
                //cmd.Parameters.AddWithValue("@ProjectID", DBNull.Value);
                if (model.Estimation.ID == Guid.Empty)
                {
                    model.Estimation.ID = Guid.NewGuid();
                    model.Estimation.RegistrationDate = DateTime.Now;
                    _dbContext.Estimations.Add(model.Estimation);
                }
                else
                {
                    _dbContext.Entry(model.Estimation).State = EntityState.Modified;
                }
                //Save or update Estimation details
                model.EstimationDetails.ForEach(item =>
                {
                    item.EstimationID = model.Estimation.ID;
                    ModelBinder.ModifyGuidValue(item);
                    if (item.ID == Guid.Empty)
                    {
                        item.ID = Guid.NewGuid();
                        _dbContext.EstimationDetails.Add(item);
                    }
                    else
                    {
                        _dbContext.Entry(item).State = EntityState.Modified;
                    }
                });
                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccessful = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "OverheadCostQuotation", message);
                throw new Exception(message);
            }
            return(isSuccessful);
        }
Example #8
0
        /* The method provokes value to current cultural properties using generic and reflection */
        public static T SetCulturalValue <T>(T model, CommonModelHelper helper, List <string> items)
        {
            var type  = typeof(T);
            var props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);

            items.ForEach(item =>
            {
                var propVal = helper.CulturalItem.GetType().GetProperty(item).GetValue(helper.CulturalItem, null);
                var prop    = props.FirstOrDefault(x => x.Name.ToLower() == ($"{item}_{helper.Culture}").ToLower());
                if (prop != null)
                {
                    prop.SetValue(model, propVal, null);
                }
            });
            return(model);
        }
Example #9
0
        public static PaginationModel <MinistryModel> GetMinistryModel()
        {
            var model = CommonModelHelper.GetPaginatedModel <MinistryModel>(Constants.Sort_Column_Name, MvcContrib.Sorting.SortDirection.Ascending);

            model.GetPaginatedMinistries();

            var ticket = ManageUserModelHelper.GetFormsAuthenticationTicket();

            if (ticket != null)
            {
                model.UserIdKey = ticket.IdKey();
            }

            model.PageTitle       = "Holy Angels Church Ministries";
            model.MetaDescription = "";
            model.MetaKeywords    = "";
            model.MetaSubject     = "";

            return(model);
        }
 public HttpResponseMessage Save(CommonModelHelper model)
 {
     try
     {
         var isSuccess = service.Save(model);
         if (isSuccess)
         {
             return(Request.CreateResponse(HttpStatusCode.OK, isSuccess));
         }
         else
         {
             string message = "Error Saving Data";
             return(Request.CreateErrorResponse(HttpStatusCode.Forbidden, message));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
Example #11
0
        public bool Save(CommonModelHelper model)
        {
            var isSuccessful = true;

            try
            {
                var culturalItems = new List <string> {
                    "BillingAddress", "ClientAddress", "BillingCompanyName", "DeliveryCompanyName", "DeliveryAddress", "Remarks"
                };
                ModelBinder.SetCulturalValue(model.Estimation, model, culturalItems);
                model.Estimation.EstimationNo     = GenerateEstimationNumber(model.ApplicationID);
                model.Estimation.EstimationType   = (int)EstimationType.Narration;
                model.Estimation.EstimationStatus = (int)EstimationStatus.Ordered;
                ModelBinder.ModifyGuidValue(model.Estimation);
                //cmd.Parameters.AddWithValue("@ProjectID", DBNull.Value);
                if (model.Estimation.ID == Guid.Empty)
                {
                    model.Estimation.ID = Guid.NewGuid();
                    model.Estimation.RegistrationDate = DateTime.Now;
                    _dbContext.Estimations.Add(model.Estimation);
                }
                else
                {
                    _dbContext.Entry(model.Estimation).State = EntityState.Modified;
                }
                //Save or update Estimation details
                foreach (var item in model.EstimationDetails)
                {
                    item.EstimationID = model.Estimation.ID;

                    ModelBinder.ModifyGuidValue(item);
                    if (item.ID == Guid.Empty)
                    {
                        item.ID = Guid.NewGuid();
                        _dbContext.EstimationDetails.Add(item);
                    }
                    else
                    {
                        _dbContext.Entry(item).State = EntityState.Modified;
                    }
                }
                //Save file type
                var existingWorkContent = _dbContext.EstimationWorkContents.Where(x => x.Estimation.ID == model.Estimation.ID).ToList();

                existingWorkContent?.ForEach(ewc =>
                {
                    _dbContext.EstimationWorkContents.Remove(ewc);
                });

                //Save work content
                model.WorkContents?.ForEach(wc =>
                {
                    var content = new EstimationWorkContent
                    {
                        ID          = Guid.NewGuid(),
                        Estimation  = model.Estimation,
                        WorkContent = wc.WorkContent,
                        IsDeleted   = false
                    };
                    _dbContext.EstimationWorkContents.Add(content);
                });

                model.estimationCompetencies?.ForEach(ec =>
                {
                    var content = new EstimationCompetency
                    {
                        ID               = Guid.NewGuid(),
                        Estimation       = model.Estimation,
                        CompetencyType   = ec.CompetencyType,
                        CompetencyDetail = ec.CompetencyDetail
                    };
                    _dbContext.EstimationCompetencies.Add(content);
                });

                if (model.EstimationNarrationExpense.ID == Guid.Empty)
                {
                    model.EstimationNarrationExpense.ID           = Guid.NewGuid();
                    model.EstimationNarrationExpense.EstimationID = model.Estimation.ID;
                    _dbContext.EstimationNarrationExpenses.Add(model.EstimationNarrationExpense);
                }
                else
                {
                    _dbContext.Entry(model.EstimationNarrationExpense).State = EntityState.Modified;
                }

                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccessful = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "NarrationEstimation", message);
                throw new Exception(message);
            }
            return(isSuccessful);
        }