Beispiel #1
0
        public ServiceResult Delete(int id)
        {
            try
            {
                var task = _taskRepository.Get(id);

                //if (task.RootType == RootTypes.Client)
                //{
                //    var client = _clientRepository.Get(task.RootId);
                //    client.Credit -= task.Residue * CurrencyConverter.ConvertValute(task.Currency, CurrencyType.Rub);
                //}
                _taskRepository.Delete(id);
                _taskRepository.SaveChanges();

                return(ServiceResult.SuccessResult());
            }
            catch (Exception ex)
            {
                _Logger.LogError("Delete Task error TaskId = {0} : {1}", id, ex);
                return(ServiceResult.ErrorResult("Ошибка при удалении задачи"));
            }
        }
Beispiel #2
0
        public ServiceResult <IEnumerable <ProductDataTransferObject> > GetProductsByCategory(long categoryId)
        {
            var category = _categoryRepository.All()
                           .Include(x => x.Products)
                           .FirstOrDefault(x => x.Id == categoryId);

            if (category == null)
            {
                return(ServiceResult <IEnumerable <ProductDataTransferObject> > .ErrorResult($"No se encontró una categoría con el id {categoryId}"));
            }

            var result = category.Products.Select(x => new ProductDataTransferObject
            {
                Description         = x.Description,
                Price               = x.Price + (x.Price * 0.15),
                CategoryDescription = x.Category.Description,
                CategoryId          = x.CategoryId,
                Id = x.Id
            });

            return(ServiceResult <IEnumerable <ProductDataTransferObject> > .SuccessResult(result));
        }
Beispiel #3
0
        public ServiceResult Delete(int id)
        {
            try
            {
                var project = _projectRepository.Get(id);

                if (project.RootType == RootTypes.Client)
                {
                    var client = _clientRepository.Get(project.RootId);
                    client.Credit -= project.Residue * CurrencyConverter.ConvertValute(project.Currency, CurrencyType.Rub);
                }
                _projectRepository.Delete(id);
                _projectRepository.SaveChanges();

                return(ServiceResult.SuccessResult());
            }
            catch (Exception ex)
            {
                _Logger.LogError("Delete project error ProjectId = {0} : {1}", id, ex);
                return(ServiceResult.ErrorResult("Ошибка при удалении проекта"));
            }
        }
Beispiel #4
0
        public ServiceResult EditUser(ObjUser obj)
        {
            try
            {
                obj.Email = obj.Email.Trim();
                var users = _userRepository.All();
                if (users.Any(x => string.Equals(x.Email, obj.Email) && x.Id != obj.Id))
                {
                    return(ServiceResult.ErrorResult("Указанный Email уже зарегистрирован"));
                }

                var model = _userRepository.Get(obj.Id);

                //сохраняем аватар
                if (obj.file != null)
                {
                    var originalName = obj.file.FileName.Trim();

                    var extension = Path.GetExtension(originalName);
                    var fileName  = Guid.NewGuid().ToString("N") + extension;
                    var path      = Path.Combine(CoreConfiguration.PathAvatar, fileName);

                    _fileHelper.SaveFile(obj.file, path);
                    obj.AvatarFileName = fileName;
                }

                UpdateMapping(obj, model);
                _userRepository.Update(model);
                _userRepository.SaveChanges();

                return(ServiceResult.SuccessResult(model.Id));
            }
            catch (Exception ex)
            {
                //_logger.LogError("Error editing user id = {0} / message  = {1}", obj.Id, ex.Message);
                return(ServiceResult.ErrorResult("Ошибка сохранения сотрудника"));
            }
        }
Beispiel #5
0
 public ServiceResult EditTask(ObjTask obj)
 {
     try
     {
         var task = _taskRepository.Get(obj.Id);
         UpdateMap(task, obj);
         _taskRepository.Update(task);
         _taskRepository.SaveChanges();
         //if (obj.RootType == RootTypes.Client)
         //{
         //    var client = _clientRepository.Get(obj.RootId);
         //    client.Credit += (obj.Cost * CurrencyConverter.ConvertValute(obj.Currency, CurrencyType.Rub)) -
         //        (task.Cost * CurrencyConverter.ConvertValute(task.Currency, CurrencyType.Rub));
         //    _clientRepository.Update(client);
         //    _clientRepository.SaveChanges();
         //}
         return(ServiceResult.SuccessResult(obj.Id));
     }
     catch (Exception ex)
     {
         _Logger.LogError("Edit Task error TaskId = {0} : {1}", obj.Id, ex);
         return(ServiceResult.ErrorResult("Ошибка при сохранении задачи"));
     }
 }
Beispiel #6
0
 public ServiceResult EditProject(ObjProject obj)
 {
     try
     {
         var project = _projectRepository.Get(obj.Id);
         UpdateMap(project, obj);
         _projectRepository.Update(project);
         _projectRepository.SaveChanges();
         if (obj.RootType == RootTypes.Client)
         {
             var client = _clientRepository.Get(obj.RootId);
             client.Credit += (obj.Cost * CurrencyConverter.ConvertValute(obj.Currency, CurrencyType.Rub)) -
                              (project.Cost * CurrencyConverter.ConvertValute(project.Currency, CurrencyType.Rub));
             _clientRepository.Update(client);
             _clientRepository.SaveChanges();
         }
         return(ServiceResult.SuccessResult(obj.Id));
     }
     catch (Exception ex)
     {
         _Logger.LogError("Edit Project error ProjectId = {0} : {1}", obj.Id, ex);
         return(ServiceResult.ErrorResult("Ошибка при сохранении проекта"));
     }
 }
Beispiel #7
0
        public ServiceResult EditRole(ObjRoleEdit model)
        {
            try
            {
                //_logger.LogTrace("Start edti role saving");
                //обновляем роль
                var role = _roleRepository.GetFull(model.Id);

                if (role == null)
                {
                    return(ServiceResult.ErrorResult("Отсутствует редактируемая роль"));
                }
                //_logger.LogTrace("Change Role {0}", role.Title);
                var roleTitle = model.Title.Trim();
                var roleName  = model.Name.Trim();
                var roles     = _roleRepository.GetRoles();
                if (roles.Any(r => string.Equals(r.Title, roleTitle) && r.Id != model.Id))
                {
                    return(ServiceResult.ErrorResult("Роль с таким именем уже существует"));
                }

                role.Title = roleTitle;
                role.Name  = roleName;

                _roleRepository.Update(role);
                _roleRepository.SaveChanges();
                //_logger.LogTrace("Edit role save");
                role.RoleActivitys.ForEach(x => _roleActivityRepository.Delete(x.Id));

                //Получаем названия всех выбранных разрешений
                var selectedPemissionNames = model.SelectedActivities
                                             .Where(x => x.Checked)
                                             .Select(x => x.Name)
                                             .ToList();

                //Получаем по именам
                var selectedPermissions = ActivityHelper.GetActivities()
                                          .SelectMany(x => x.Permisioins)
                                          .Where(x => selectedPemissionNames.Contains(x.Key))
                                          .Select(x => x.Key)
                                          .ToList();

                if (selectedPermissions.Any())
                {
                    foreach (var permission in selectedPermissions)
                    {
                        var RoleActivity = new RoleActivity()
                        {
                            RoleId   = role.Id,
                            Activity = permission
                        };
                        _roleActivityRepository.Insert(RoleActivity);
                    }
                    _roleActivityRepository.SaveChanges();
                }
                //_logger.LogTrace("Role activity save");
                return(ServiceResult.SuccessResult(role.Id));
            }
            catch (Exception ex)
            {
                //_logger.LogError("Saving Role error id = {0} / error: {1}", model.Id, ex);
                return(ServiceResult.ErrorResult("Ошибка при сохранении изменений роли"));
            }
        }
Beispiel #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="rootType"></param>
        /// <returns></returns>
        public ServiceResult <string> Delete(int Id, RootTypes rootType)
        {
            string ControllerName = "Home";

            switch (rootType)
            {
            case RootTypes.User:
                try
                {
                    //Удаляем пользователя из учасников проекта
                    var participants = _participantRepository.All().ToList();
                    for (int i = 0; i < participants.Count; i++)
                    {
                        if (participants[i].UserId == Id)
                        {
                            _participantRepository.Delete(participants[i]);
                        }
                    }
                    _participantRepository.SaveChanges();

                    _userRepository.Delete(Id);
                    _userRepository.SaveChanges();
                    ControllerName = "Users";
                }
                catch (Exception ex)
                {
                    return(ServiceResult <string> .ErrorResult("Ошибка при удалении сотрудника"));
                }
                break;

            case RootTypes.PotentialCLient:
                try
                {
                    _potentialClientRepository.Delete(Id);
                    _potentialClientRepository.SaveChanges();
                    ControllerName = "PotentialClients";
                }
                catch
                {
                    return(ServiceResult <string> .ErrorResult("Ошибка при удалении "));
                }
                break;

            case RootTypes.Client:
                try
                {
                    var projects = _projectRepository.All().ToList();
                    for (int i = 0; i < projects.Count; i++)
                    {
                        if (projects[i].RootType == RootTypes.Client && projects[i].RootId == Id)
                        {
                            _projectRepository.Delete(projects[i]);
                        }
                    }
                    _projectRepository.SaveChanges();
                    _clientRepository.Delete(Id);
                    _clientRepository.SaveChanges();
                    ControllerName = "Clients";
                }
                catch (Exception ex)
                {
                    return(ServiceResult <string> .ErrorResult("Ошибка при удалении клиента"));
                }
                break;

            case RootTypes.Project:
                try
                {
                    var project = _projectRepository.Get(Id);

                    if (project.RootType == RootTypes.Client)
                    {
                        var client = _clientRepository.Get(project.RootId);
                        client.Credit -= project.Residue * CurrencyConverter.ConvertValute(project.Currency, CurrencyType.Rub);
                    }
                    _projectRepository.Delete(Id);
                    _projectRepository.SaveChanges();
                    ControllerName = "Projects";
                }
                catch (Exception ex)
                {
                    return(ServiceResult <string> .ErrorResult("Ошбика при удалении проекта"));
                }
                break;
            }

            //Зачищаем модули


            return(ServiceResult <string> .SuccessResult(ControllerName));
        }