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); }
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)); } }
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); }
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); }
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); }
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)); } }
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); }
/* 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); }
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)); } }
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); }