Exemple #1
0
        public async Task <IResultModel> UpdateContact(EmployeeContactUpdateModel model)
        {
            var employee = await _repository.GetAsync(model.EmployeeId);

            if (employee == null)
            {
                return(ResultModel.NotExists);
            }

            var entity = await _contactRepository.GetByEmployee(model.EmployeeId) ?? new EmployeeContactEntity();

            _mapper.Map(model, entity);

            ClearContactAreaInfo(entity);

            SetContactAreaInfo(entity, model.Area);

            bool result;

            if (entity.Id > 0)
            {
                result = await _contactRepository.UpdateAsync(entity);
            }
            else
            {
                result = await _contactRepository.AddAsync(entity);
            }

            if (result)
            {
                var account = await _accountRepository.GetAsync(employee.AccountId);

                if (account != null)
                {
                    var syncModel = new AccountSyncModel
                    {
                        Id       = account.Id,
                        Name     = account.Name,
                        Email    = model.Email ?? string.Empty,
                        Phone    = model.Phone ?? string.Empty,
                        Roles    = null,
                        UserName = account.UserName
                    };

                    await _accountService.Sync(syncModel);
                }

                return(ResultModel.Success());
            }

            return(ResultModel.Failed());
        }