public MealMenuOrderItemSaveResponse SaveOrderItem(MealMenuOrderItemSaveRequest request) { return(Execute <MealMenuOrderItemSaveRequest, MealMenuOrderItemSaveResponse>( request, response => { var annualAgreements = SchoolFacade.AnnualAgreementsByFilter(request.SchoolId, DateTime.Now.Year, request.MealTypeId); response.OrderItem = MealMenuOrderFacade.SaveOrderItem(request.OrderItem, request.SchoolId, annualAgreements.FirstOrDefault().Value); //if (request.OrderItem.Id > 0 && request.SchoolId>0) if (request.OrderItem.Id > 0 && request.SchoolId > 0 && (response.OrderItem.RefId ?? 0) > 0) { int totalCount; var invoice = MealMenuOrderFacade .GetInvoicesByFilter(new InvoiceFilterView { OrderDate = new DateTime(response.OrderItem.MealMenuValidDate.Year, response.OrderItem.MealMenuValidDate.Month, 1), SchoolId = request.SchoolId, RecordCount = 1 }, 1, 1, "", false, out totalCount).FirstOrDefault(); if (invoice == null || invoice.OrderStatus.Id == (long)OrderStatuses.InitialState) { return; } var orderItem = response.OrderItem; var mailAddress = Settings.GetSetting <string>("EmailContactRegardsTo"); var school = SchoolFacade.Get(request.SchoolId); // var emails = school.Users.Select(k => k.UserName).ToList(); var emails = new List <string>(); // UserFacade.GetActiveSchoolUsers(request.SchoolId).Select(c => c.UserName).ToList(); emails.Insert(0, mailAddress); var toEmails = string.Join(",", emails); var changedList = MealMenuOrderFacade.GetOrderItemHistory(response.OrderItem.RefId ?? 0); var body = new StringBuilder(); body.AppendLine( string.Format("<br/>{0} menu updates occured in {1} - {2} school {3} date order", orderItem.MenuName, school.Code, school.Name, orderItem.MealMenuValidDate)); changedList.ForEach( d => body.AppendLine(string.Format("<br/><br/>Date : {0}", d.ModifiedAt)) .AppendLine(string.Format("<br/>Count : {0}", d.TotalCount)) .AppendLine(string.Format("<br/>Modified By : {0}", d.ModifiedByFullName)) .AppendLine(string.Format("<br/>Reason : {0}", d.ModifiedReason)) .AppendLine().AppendLine()); var subject = string.Format("{0} - {1} school {2} order {3} Menu Updates", school.Code, school.Name, orderItem.MealMenuValidDate, orderItem.MenuName); MailService.SendMail(toEmails, subject, body.ToString()); } })); }
public MealMenuOrderItemGetHistoryResponse GetOrderItemHistory(MealMenuOrderItemGetHistoryRequest request) { return(Execute <MealMenuOrderItemGetHistoryRequest, MealMenuOrderItemGetHistoryResponse>( request, response => response.OrderItems = MealMenuOrderFacade.GetOrderItemHistory(request.OrderItemId))); }