public dynamic GetAllInList(DBModelManagers.Abstract.OperationType operationType)
 {
     using (_unitOfWork = DIManager.UnitOfWork)
     {
         return(_unitOfWork.PersonalAccountantContext.Set <OperationCategory>().Where(x => x.OperationTypeId == (int)operationType)?.Select(x => new
         {
             Id = x.Id,
             Name = x.Name
         }).ToList());
     }
 }
 private OperationCategory CreateNewCategory(string nameParam, DBModelManagers.Abstract.OperationType operationTypeParam)
 {
     using (_unitOfWork = DIManager.UnitOfWork)
     {
         _unitOfWork.PersonalAccountantContext.Set <OperationCategory>().Add(new OperationCategory()
         {
             Name = nameParam, OperationTypeId = Convert.ToInt32(operationTypeParam)
         });
         _unitOfWork.Save();
         return(_unitOfWork.PersonalAccountantContext.Set <OperationCategory>().FirstOrDefault <OperationCategory>(x => x.Name.ToUpper() == nameParam.ToUpper()));
     }
 }
        public NameIdClassModel GetCategoryWithCurrentName(string nameParam, DBModelManagers.Abstract.OperationType operationTypeParam)
        {
            using (_unitOfWork = DIManager.UnitOfWork)
            {
                int operationTypeId = Convert.ToInt32(operationTypeParam);
                OperationCategory contextCategory = _unitOfWork.PersonalAccountantContext.Set <OperationCategory>().
                                                    FirstOrDefault <OperationCategory>(x => x.Name.ToUpper() == nameParam.ToUpper() && x.OperationTypeId == operationTypeId);

                if (contextCategory == null)
                {
                    int Id = 0;
                    contextCategory = Int32.TryParse(nameParam, out Id) ?
                                      _unitOfWork.PersonalAccountantContext.Set <OperationCategory>().FirstOrDefault(x => x.Id == Id && x.OperationTypeId == operationTypeId) :
                                      CreateNewCategory(nameParam, operationTypeParam);
                }

                return(_mapperManager.MapModel <OperationCategory, NameIdClassModel>(contextCategory));
            }
        }
        public override bool addNewOperation <TObject>(TObject modelParam, string userName)
        {
            AddOperationModel model = modelParam as AddOperationModel;

            if (model != null && model != null && ValidationManager.modelIsValid(model))
            {
                DBModelManagers.Abstract.OperationType operationType = model.IsAddOperation ?
                                                                       DBModelManagers.Abstract.OperationType.Income : DBModelManagers.Abstract.OperationType.Outcome;

                ModelsForPersonalOperationModel modelForOperation = new ModelsForPersonalOperationModel
                {
                    CategoryModel = new NameIdClassModel(),
                    CurrencyModel = new CurrencyNameIdRateClass(),
                    OperationType = operationType,
                    SourceModel   = new NameIdClassModel()
                };
                GetModelsForOperationOptions(ref model, modelForOperation);

                Operation newOperation = new Operation()
                {
                    Summ       = Convert.ToDecimal(model.Summ),
                    Date       = model.Date,
                    Commentary = model.Commentary
                };
                PersonalAccountForeignKeyForSetModels fKModel = new PersonalAccountForeignKeyForSetModels
                {
                    CurrencyModel = modelForOperation.CurrencyModel,
                    CategoryModel = modelForOperation.CategoryModel,
                    SourceModel   = modelForOperation.SourceModel,
                    UserId        = userName,
                    OperationType = operationType
                };
                SetIdForForeignKeys(fKModel, DIManager.UnitOfWork, ref newOperation);


                return(AddOperationToDB(newOperation, model.Template));
            }
            return(false);
        }