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()); }
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); }