public async Task <ServiceResult <int> > Create(InfoChannelMessageCreateOrUpdateRequestViewModel viewModel)
        {
            var model = new InfoChannelMessage();

            MapViewModelToModel(viewModel, model);
            model.Status = "1"; // TODO: What is status for?

            var validator        = new InfoChannelMessageCreateOrUpdateRequestViewModelValidator();
            var validationResult = await validator.ValidateAsync(model);

            if (!validationResult.IsValid)
            {
                return(ServiceResultFactory.Fail <int>(validationResult));
            }

            await _repository.AddAsync(model);

            var changes = await _repository.SaveChangesAsync();

            if (changes == 0)
            {
                return(ServiceResultFactory.Fail <int>("Insert fails"));
            }
            return(ServiceResultFactory.Success(model.Id));
        }
 private void MapViewModelToModel(InfoChannelMessageCreateOrUpdateRequestViewModel viewModel, InfoChannelMessage model)
 {
     model.Title   = viewModel.Subject;
     model.Message = viewModel.Message;
     model.Visible = viewModel.IsVisible;
 }