public override ServiceHours TranslateVmToEntity(VmExceptionalHours vModel)
        {
            var definition = definitionHelper.GetDefinitionWithCreateOrUpdate(CreateViewModelEntityDefinition(vModel));

            definitionHelper.AddOpeningHoursDefinition(definition)
            .AddSimple(input => input.Closed, output => output.IsClosed);
            if (vModel.Closed)
            {
                definition.AddCollection(input => new List <IDailyHours>(), output => output.DailyOpeningTimes);
            }
            else
            {
                definition.AddNavigationOneMany <IDailyHours, DailyOpeningTime>(input => input, output => output.DailyOpeningTimes);
            }


            return(definition.GetFinal());
        }
Exemple #2
0
        public override ServiceHours TranslateVmToEntity(VmNormalHours vModel)
        {
            if (vModel == null)
            {
                return(null);
            }
            if (vModel.Id.IsAssigned())
            {
                vModel.DailyHours.ForEach(x => x.OwnerReferenceId = vModel.Id);
            }

            var definition = definitionHelper.GetDefinitionWithCreateOrUpdate(CreateViewModelEntityDefinition(vModel));

            definitionHelper.AddOpeningHoursDefinition(definition);

            var entity = definition.GetFinal();

            if (vModel.Nonstop)
            {
                definition.AddCollection(input => new List <VmNormalHours>(), output => output.DailyOpeningTimes);
            }
            else
            {
                definition.AddCollection(input => input.DailyHours, output => output.DailyOpeningTimes);

                var extra = vModel.DailyHours.Where(x => x.Extra == DailyHoursExtraTypes.Vissible)
                            .Select(x => new VmExtraHours {
                    Hours = x
                })
                            .ToList();
                if (extra.Count > 0)
                {
                    var list = new List <DailyOpeningTime>(entity.DailyOpeningTimes);

                    var extraHours = CreateViewModelEntityDefinition(vModel)
                                     .AddCollection(i => extra, o => o.DailyOpeningTimes)
                                     .GetFinal().DailyOpeningTimes;
                    list.AddRange(extraHours);
                    entity.DailyOpeningTimes = list;
                }
            }
            return(entity);
        }