Example #1
0
        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());
        }