public void CreateOrUpdateViewTemplateColumn(ViewTemplateColumnDTO viewTemplateColumn, int?templateId)
 {
     if (viewTemplateColumn == null)
     {
         throw new ValidationException(Resource.Resource.ViewTemplateColumnNullReference, "");
     }
     if (db.ViewTemplateColumns.IsExist(viewTemplateColumn.Id))
     {
         UpdateViewTemplateColumn(viewTemplateColumn);
     }
     else
     {
         CreateViewTemplateColumn(viewTemplateColumn, templateId);
     }
 }
        public void CreateViewTemplateColumn(ViewTemplateColumnDTO viewTemplateColumnDto, int?templateId)
        {
            if (viewTemplateColumnDto == null)
            {
                throw new ValidationException(Resource.Resource.ViewTemplateColumnNullReference, "");
            }

            Mapper.Initialize(cfg => cfg.CreateMap <ViewTemplateColumnDTO, ViewTemplateColumn>()
                              .ForMember("DisplayIndex", opt => opt.MapFrom(src => db.ViewTemplates.GetCountColumnInTemplate(templateId.Value) + 1)));
            var viewTemplateColumn = Mapper.Map <ViewTemplateColumnDTO, ViewTemplateColumn>(viewTemplateColumnDto);

            AddColumnToViewTemplateColumn(viewTemplateColumn, viewTemplateColumnDto.ColumnName);
            AddColumnToTemplate(viewTemplateColumn, templateId);
            ApplyFormatToColumn(viewTemplateColumn, viewTemplateColumnDto.ColumnFormatId);
            db.ViewTemplateColumns.Create(viewTemplateColumn);
        }
        public void UpdateViewTemplateColumn(ViewTemplateColumnDTO viewTemplateColumnDto)
        {
            if (viewTemplateColumnDto == null)
            {
                throw new ValidationException(Resource.Resource.ViewTemplateColumnNullReference, "");
            }
            if (!db.ViewTemplateColumns.IsExist(viewTemplateColumnDto.Id))
            {
                throw new ValidationException(Resource.Resource.ViewTemplateColumnNotFound, "");
            }

            var viewTemplateColumnFromDb = db.ViewTemplateColumns.Get(viewTemplateColumnDto.Id);
            var viewTemplateColumn       = IMapper.Map <ViewTemplateColumnDTO, ViewTemplateColumn>(viewTemplateColumnDto);

            AddColumnToViewTemplateColumn(viewTemplateColumn, viewTemplateColumnDto.ColumnName);
            ApplyFormatToColumn(viewTemplateColumn, viewTemplateColumnDto.ColumnFormatId);
            viewTemplateColumn.ViewTemplate = viewTemplateColumnFromDb.ViewTemplate;
            db.ViewTemplateColumns.Update(viewTemplateColumn);
        }