// Owner can be changed. public DTOs.Order Update(int id, DTOs.Order order) { Order existingOrder = Get(id); if (order.Status != null) { existingOrder.Status = _decodesQueryProcessor.Get <OrderStatusDecode>(order.Status); } if (order.Field != null) { existingOrder.Field = _fieldsQueryProcessor.Get(order.Field.Id ?? 0); } if (order.PlayersNumber != 0) { existingOrder.PlayersNumber = order.PlayersNumber; } existingOrder.StartDate = DateUtils.ConvertFromJavaScript(order.StartDate); Update(id, existingOrder); return(new DTOs.Order().Initialize(existingOrder)); }
public DTOs.Order Save(DTOs.Order order) { // TODO remove EndDate from Order Order newOrder = new Order() { StartDate = DateUtils.ConvertFromJavaScript(order.StartDate), Field = _fieldsQueryProcessor.Get(order.Field.Id ?? 0), PlayersNumber = order.PlayersNumber, Status = _decodesQueryProcessor.Get <OrderStatusDecode>(order.Status), Participants = new List <Participant>() }; Order persistedOrder = Save(newOrder); return(new DTOs.Order().Initialize(persistedOrder)); }
public IEnumerable <UsingFieldsReport> GetUsingFieldsReport(int?fieldId, string fieldName, DateTime?fromDate, DateTime?untilDate) { var orders = _ordersQueryProcessor.Search(null, null, null, new int?[] { (int)Consts.Decodes.OrderStatus.Accepted }, null, null, fromDate, untilDate); var report = _fieldsQueryProcessor.Search(fieldId, fieldName, null).Select(x => new UsingFieldsReport() { FieldId = x.Id ?? 0, FieldName = x.Name, hours16_18Orders = orders.Where(f => x.Id == f.Field.Id && DateUtils.ConvertFromJavaScript(f.StartDate).Hour == 16).Count(), hours18_20Orders = orders.Where(f => x.Id == f.Field.Id && DateUtils.ConvertFromJavaScript(f.StartDate).Hour == 18).Count(), hours20_22Orders = orders.Where(f => x.Id == f.Field.Id && DateUtils.ConvertFromJavaScript(f.StartDate).Hour == 20).Count(), WeekEndOrders = orders.Where(f => x.Id == f.Field.Id && (DateUtils.ConvertFromJavaScript(f.StartDate).DayOfWeek == DayOfWeek.Friday || DateUtils.ConvertFromJavaScript(f.StartDate).DayOfWeek == DayOfWeek.Saturday)).Count(), WeekDayOrders = orders.Where(f => x.Id == f.Field.Id && !(DateUtils.ConvertFromJavaScript(f.StartDate).DayOfWeek == DayOfWeek.Friday || DateUtils.ConvertFromJavaScript(f.StartDate).DayOfWeek == DayOfWeek.Saturday)).Count() }); return(report); }
public List <DTOs.Order> SearchOptionalsOrders(int?orderId = null, int?fieldId = null, int?fieldType = null, DateTime?date = null) { DateTime?dateTime = date.Value.Date; //if (date.HasValue) // dateTime = DateUtils.ConvertFromJavaScript(date ?? 0); List <DTOs.Order> optionals = _ordersQueryProcessor.SearchOptionalOrders(fieldId, null, fieldType, dateTime ?? DateTime.Today); if (orderId.HasValue) { DTOs.Order current = _ordersQueryProcessor.GetOrder(orderId ?? 0); if (current.Field.Id == fieldId && DateUtils.ConvertFromJavaScript(current.StartDate).Date == dateTime.Value.Date) { optionals.Add(current); } } return(optionals); }