public override Order Initialize(Domain.Order domain) { Id = domain.Id; StartDate = DateUtils.ConvertToJavaScript(domain.StartDate); PlayersNumber = domain.PlayersNumber; Status = domain.Status.Id; Field = new DTOs.Field().Initialize(domain.Field); return(this); }
// TODO add to doc date is mandator public List <DTOs.Order> SearchOptionalOrders(int?fieldId, string fieldName, int?fieldTypeId, DateTime date) { IList <DTOs.Field> fields = _fieldsQueryProcessor.Search(fieldId, fieldName, fieldTypeId).ToList(); IList <DateTime> possibleDate = DateUtils.PossibleDateOrders(date); var possibleEvent = from field in _fieldsQueryProcessor.Search(fieldId, fieldName, fieldTypeId).ToList() from dateStart in DateUtils.PossibleDateOrders(date) select new { field, dateStart }; var statuses = new int?[] { (int)Consts.Decodes.OrderStatus.Accepted, (int)Consts.Decodes.OrderStatus.Sent }; var order = Search(null, null, null, statuses, null, null, date, date); var possibleOrders = possibleEvent.Where(a => !order.Any(r => r.StartDate == DateUtils.ConvertToJavaScript(a.dateStart) & r.Field.Id == a.field.Id)). ToList().Select(possibleOrder => new DTOs.Order() { Field = possibleOrder.field, StartDate = DateUtils.ConvertToJavaScript(possibleOrder.dateStart) }); return(possibleOrders.ToList()); }