public QuotaionVM(QuotationDM Quotaion) { GlobalErrors globalErros = new GlobalErrors(); ID = Quotaion.ID; FromLangID = Quotaion.FromLangID; ToLangID = Quotaion.ToLangID; WordCount = Quotaion.WordCount; IP_Address = Quotaion.IP_Address; IsRush = Quotaion.IsRush; RushDate = Quotaion.RushDate; SubjectID = Quotaion.Subject.ID; StartDate = Quotaion.StartDate; CategoryID = Quotaion.CategoryID; }
public QuotationDM MapVM_DM() { GlobalErrors globalErrors = new GlobalErrors(); QuotationDM obj = new QuotationDM(globalErrors); obj.ID = ID; obj.FromLangID = FromLangID; obj.ToLangID = ToLangID; obj.WordCount = WordCount; //obj.IP_Address = IP_Address; obj.IsRush = IsRush; obj.RushDate = RushDate; obj.Subject = new SubjectDM(globalErrors) { ID = SubjectID }; obj.StartDate = StartDate; obj.CategoryID = CategoryID; return(obj); }
// POST api/quotation public HttpResponseMessage RequestQuotation([FromBody] QuotaionVM dataModel) { try { QuotationDM domainModel = dataModel.MapVM_DM(); domainModel = _QuotaionService.GetQuotationForCategory(domainModel); var msg = Request.CreateResponse(HttpStatusCode.Created, domainModel); return(msg); } catch (Exception ex) { //Errors in this scope indicates system error (not validation errors) //If error exist but not handled, log it and add system error if (!globalErrors.ErrorHandled) { globalErrors.AddSystemError("Service Error: Cannot Request Quotation!"); globalErrors.ErrorHandled = true; return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } throw; } }
public QuotationDM GetQuotationForCategory(QuotationDM domainModel) { try { if (domainModel.FromLangID == domainModel.ToLangID) { _GlobalErrors.AddValidationError("", "From language equla Tatrget language"); _GlobalErrors.ErrorHandled = true; throw new Exception(); } CategoryService _CategorySer = new CategoryService(_GlobalErrors); domainModel.StartDate = DateTime.Now; _QuotaionRepo.Add(domainModel); if (domainModel.CategoryID == null) { domainModel.CategoryDMList = _CategorySer.GetAllCategories(); domainModel.QuotaionDetailsList = new List<QuotaionDetailsDM>(); foreach (var item in domainModel.CategoryDMList) { QuotaionDetailsDM obj = new QuotaionDetailsDM(_GlobalErrors); obj.Category = item; obj.Quotaion = domainModel; obj.AddCalculatedQuotation(); _QuotaionRepo.AddDetails(obj); domainModel.QuotaionDetailsList.Add(obj); } } else { CategoryDM CatObj = _CategorySer.GetById(domainModel.CategoryID); domainModel.QuotaionDetailsList = new List<QuotaionDetailsDM>(); QuotaionDetailsDM obj = new QuotaionDetailsDM(_GlobalErrors); obj.Category = CatObj; obj.Quotaion = domainModel; obj.AddCalculatedQuotation(); _QuotaionRepo.AddDetails(obj); domainModel.QuotaionDetailsList.Add(obj); } return domainModel; } catch (Exception ex) { //Errors in this scope indicates system error (not validation errors) //If error exist but not handled, log it and add system error if (!_GlobalErrors.ErrorHandled) { _Logger.Error(ex, "Service Error: Cannot Request Quotation!"); _GlobalErrors.AddSystemError("Service Error: Cannot Request Quotation!"); _GlobalErrors.ErrorHandled = true; } throw; } }
public QuotaionService(GlobalErrors globalErrors) : base(globalErrors) { _QuotaionRepo = new QuotaionRepository(globalErrors); _QuotaionDM = new QuotationDM(globalErrors); }