public CreateOrEditSpreadPosterTemplateDto GetSpreadPosterTemplateForCreateOrEdit(NullableIdDto input)
        {
            CreateOrEditSpreadPosterTemplateDto spreadPosterTemplate = new CreateOrEditSpreadPosterTemplateDto();

            if (input.Id.HasValue)
            {
                spreadPosterTemplate = Repository.Get(input.Id.Value).MapTo <CreateOrEditSpreadPosterTemplateDto>();
            }
            return(spreadPosterTemplate);
        }
        public CreateOrEditSpreadPosterTemplateDto CreateOrEdit(CreateOrEditSpreadPosterTemplateDto input)
        {
            if (input.Id.HasValue)
            {
                CheckUpdatePermission();

                var entity = GetEntityById(input.Id.Value);
                ObjectMapper.Map(input, entity);

                List <SpreadPosterTemplateParameter> spreadPosterTemplateParameters = new List <SpreadPosterTemplateParameter>();

                foreach (SpreadPosterTemplateParameterDto spreadPosterTemplateParameterDto in input.Parameters)
                {
                    if (spreadPosterTemplateParameterDto.Id.HasValue)
                    {
                        var spreadPosterTemplateParameterInDb = _spreadPosterTemplateParameterRespository.Get(spreadPosterTemplateParameterDto.Id.Value);
                        ObjectMapper.Map(spreadPosterTemplateParameterDto, spreadPosterTemplateParameterInDb);
                        spreadPosterTemplateParameters.Add(spreadPosterTemplateParameterInDb);
                    }
                    else
                    {
                        spreadPosterTemplateParameters.Add(
                            spreadPosterTemplateParameterDto.MapTo <SpreadPosterTemplateParameter>()
                            );
                    }
                }
                entity.Parameters = spreadPosterTemplateParameters;
                CurrentUnitOfWork.SaveChanges();

                return(entity.MapTo <CreateOrEditSpreadPosterTemplateDto>());
            }
            else
            {
                CheckCreatePermission();
                var entity = input.MapTo <SpreadPosterTemplate>();

                Repository.Insert(entity);
                CurrentUnitOfWork.SaveChanges();

                return(entity.MapTo <CreateOrEditSpreadPosterTemplateDto>());
            }
        }