コード例 #1
0
        public Status UpdateFoodNutrionInfo(TFoodNutrition datas)
        {
            this._logger.LogWarning("The server execute UpdateFoodNutrionInfo Fuction  --" + DateTime.Now.ToString());
            EFHelper <TFoodNutrition> eFHelper = new EFHelper <TFoodNutrition>();

            try
            {
                eFHelper.Update(datas);
                Status status = new Status()
                {
                    StatusCode = 200,
                    Message    = "修改成功",
                    ReturnTime = DateTime.Now
                };
                return(status);
            }
            catch (Exception ex)
            {
                this._logger.LogWarning("The server execute AddNutrition Fuction  --" + ex.Message + DateTime.Now.ToString());
                Status status = new Status()
                {
                    StatusCode = 0,
                    Message    = "修改失败",
                    ReturnTime = DateTime.Now
                };
                return(status);
            }
        }
コード例 #2
0
        public Status DeleteFoodNutrionInfo(int id)
        {
            this._logger.LogWarning("The server execute DeleteFoodNutrionInfo Fuction  --" + DateTime.Now.ToString());
            EFHelper <TFoodNutrition> eFHelper = new EFHelper <TFoodNutrition>();

            try
            {
                TFoodNutrition result = eFHelper.getList(a => a.Id == id).FirstOrDefault();
                if (result == null)
                {
                    this._logger.LogWarning("This object is null ");
                    throw new Exception();
                }
                else
                {
                    eFHelper.Delete(result);
                    Status status = new Status()
                    {
                        StatusCode = 200,
                        Message    = "删除成功",
                        ReturnTime = DateTime.Now
                    };
                    return(status);
                }
            }
            catch (Exception ex)
            {
                this._logger.LogWarning("The server execute DeleteNutritionInfo Fuction  --" + ex.Message + DateTime.Now.ToString());
                Status status = new Status()
                {
                    StatusCode = 0,
                    Message    = "删除失败",
                    ReturnTime = DateTime.Now
                };
                return(status);
            }
        }
コード例 #3
0
        public Task <ResultWrapper <UpdateSupplierFoodOutput> > Handle(UpdateSupplierFoodCommand request, CancellationToken cancellationToken)
        {
            ResultWrapper <UpdateSupplierFoodOutput> updateFoodResult = new ResultWrapper <UpdateSupplierFoodOutput>();

            if (!request.FoodNutritions.Any())
            {
                updateFoodResult.Status  = false;
                updateFoodResult.Message = "please enter nutiritions!";
                return(Task.FromResult(updateFoodResult));
            }
            try
            {
                using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.RequiresNew))
                {
                    TFood tFood = _dbContext.TFood
                                  .Include(x => x.TFoodNutritions)
                                  .FirstOrDefault(x => x.Id == request.Id);

                    if (tFood == null)
                    {
                        updateFoodResult.Status  = false;
                        updateFoodResult.Message = "this food doesn't exists!";
                        return(Task.FromResult(updateFoodResult));
                    }
                    tFood.Title       = request.Title;
                    tFood.Image       = request.Image;
                    tFood.Tags        = request.Tags;
                    tFood.Price       = request.Price;
                    tFood.Enabled     = request.Enabled;
                    tFood.TFoodTypeId = request.FoodTypeId;
                    _dbContext.TFood.Update(tFood);
                    _dbContext.SaveChanges();

                    List <TReference> tRefrences = _dbContext.TReference.Where(x => tFood.TFoodNutritions.Select(x => x.TReferenceId).Contains(x.Id)).ToList();
                    _dbContext.TFoodNutrition.RemoveRange(tFood.TFoodNutritions);
                    _dbContext.TReference.RemoveRange(tRefrences);
                    _dbContext.SaveChanges();

                    foreach (var nutrition in request.FoodNutritions)
                    {
                        TFoodNutrition tFoodNutrition = new TFoodNutrition()
                        {
                            Amount           = nutrition.Amount,
                            Enabled          = true,
                            Created          = DateTime.Now,
                            TFoodId          = tFood.Id,
                            TNutritionId     = nutrition.Id,
                            TNutritionUnitId = nutrition.UnitId,
                            TReference       = new TReference()
                            {
                                Enabled    = true,
                                RecordType = ReferenceRecordTypeEnum.FOOD_NUTIRTION
                            }
                        };
                        _dbContext.TFoodNutrition.Add(tFoodNutrition);
                    }
                    _dbContext.SaveChanges();

                    foreach (TFoodNutrition foodNutrition in tFood.TFoodNutritions)
                    {
                        foodNutrition.TReference.RecordId = foodNutrition.Id;
                        _dbContext.TReference.Update(foodNutrition.TReference);
                    }
                    _dbContext.SaveChanges();

                    // Food Diets
                    List <TFoodDiet> foodDiets = _dbContext.TFoodDiet.Where(x => x.TFood.Id == tFood.Id).ToList();
                    _dbContext.TFoodDiet.RemoveRange(foodDiets.Where(x => !request.Diets.Contains(x.TDietId)));

                    int selectedDietsCount = _dbContext.TDiet.Where(x => request.Diets.Contains(x.Id)).Count();
                    if (selectedDietsCount != request.Diets.Count)
                    {
                        updateFoodResult.Status  = false;
                        updateFoodResult.Message = "Selected diets are invalid!";
                        return(Task.FromResult(updateFoodResult));
                    }
                    foreach (int dietId in request.Diets.Where(x => !foodDiets.Any(z => z.TDietId == x)))
                    {
                        _dbContext.TFoodDiet.Add(new TFoodDiet()
                        {
                            TFoodId = tFood.Id,
                            TDietId = dietId
                        });
                    }

                    // Food Allergies
                    List <TFoodAllergy> foodAllergies = _dbContext.TFoodAllergy.Where(x => x.TFood.Id == tFood.Id).ToList();
                    _dbContext.TFoodAllergy.RemoveRange(foodAllergies.Where(x => !request.Allergies.Contains(x.TAllergyId)));

                    int selectedAllergiesCount = _dbContext.TAllergy.Where(x => request.Allergies.Contains(x.Id)).Count();
                    if (selectedAllergiesCount != request.Allergies.Count)
                    {
                        updateFoodResult.Status  = false;
                        updateFoodResult.Message = "Selected Allergies are invalid!";
                        return(Task.FromResult(updateFoodResult));
                    }
                    foreach (int AllergyId in request.Allergies.Where(x => !foodAllergies.Any(z => z.TAllergyId == x)))
                    {
                        _dbContext.TFoodAllergy.Add(new TFoodAllergy()
                        {
                            TFoodId    = tFood.Id,
                            TAllergyId = AllergyId
                        });
                    }

                    // Food Deficiencies
                    List <TFoodDeficiency> foodDeficiencies = _dbContext.TFoodDeficiency.Where(x => x.TFood.Id == tFood.Id).ToList();
                    _dbContext.TFoodDeficiency.RemoveRange(foodDeficiencies.Where(x => !request.Deficiencies.Contains(x.TDeficiencyId)));

                    int selectedDeficienciesCount = _dbContext.TDeficiency.Where(x => request.Deficiencies.Contains(x.Id)).Count();
                    if (selectedDeficienciesCount != request.Deficiencies.Count)
                    {
                        updateFoodResult.Status  = false;
                        updateFoodResult.Message = "Selected Deficiencies are invalid!";
                        return(Task.FromResult(updateFoodResult));
                    }
                    foreach (int DeficiencyId in request.Deficiencies.Where(x => !foodDeficiencies.Any(z => z.TDeficiencyId == x)))
                    {
                        _dbContext.TFoodDeficiency.Add(new TFoodDeficiency()
                        {
                            TFoodId       = tFood.Id,
                            TDeficiencyId = DeficiencyId
                        });
                    }

                    // Food NutritionCondition
                    List <TFoodNutritionCondition> userNutritionConditions = _dbContext.TFoodNutritionCondition.Where(x => x.TFood.Id == tFood.Id).ToList();
                    _dbContext.TFoodNutritionCondition.RemoveRange(userNutritionConditions.Where(x => !request.NutritionConditions.Contains(x.TNutritionConditionId)));

                    int selectedNutritionConditionsCount = _dbContext.TNutritionCondition.Where(x => request.NutritionConditions.Contains(x.Id)).Count();
                    if (selectedNutritionConditionsCount != request.NutritionConditions.Count)
                    {
                        updateFoodResult.Status  = false;
                        updateFoodResult.Message = "Selected nutrition Conditions are invalid!";
                        return(Task.FromResult(updateFoodResult));
                    }
                    foreach (int NutritionConditionId in request.NutritionConditions.Where(x => !userNutritionConditions.Any(z => z.TNutritionConditionId == x)))
                    {
                        _dbContext.TFoodNutritionCondition.Add(new TFoodNutritionCondition()
                        {
                            TFoodId = tFood.Id,
                            TNutritionConditionId = NutritionConditionId
                        });
                    }
                    _dbContext.SaveChanges();

                    SqlParameter foodId = new SqlParameter("@FoodID", tFood.Id);
                    _dbContext.Database.ExecuteSqlRaw("EXEC spCalculateFoodRefrence @FoodID", foodId);
                    transaction.Complete();
                    updateFoodResult.Status = true;
                    updateFoodResult.Result = new UpdateSupplierFoodOutput()
                    {
                        Id = tFood.Id
                    };
                }
            }
            catch (SqlException ex)
            {
                updateFoodResult.Status  = false;
                updateFoodResult.Message = ex.ToJsonString();
            }
            catch (Exception ex)
            {
                updateFoodResult.Status  = false;
                updateFoodResult.Message = ex.ToJsonString();
            }
            return(Task.FromResult(updateFoodResult));
        }
コード例 #4
0
        public Status AddFoodNutrionInfo(string foodname, string nutritionalingredient, string introduce, List <IFormFile> files)
        {
            TFoodNutrition foodNutrition = new TFoodNutrition()
            {
                FoodName              = foodname,
                Introduce             = introduce,
                NutritionalIngredient = nutritionalingredient
            };
            List <string> filenames      = new List <string>();
            string        resultfilename = string.Empty;
            bool          flag           = false;

            this._logger.LogWarning("The server execute AddFoodNutrionInfo Fuction  --" + DateTime.Now.ToString());
            using (DietaryNutritionContext dbcontext = new DietaryNutritionContext())
            {
                try
                {
                    if (foodNutrition.FoodName != "")
                    {
                        flag = FileSave(files, foodNutrition.FoodName, out filenames);
                    }
                    else
                    {
                        flag = FileSave(files, DateTime.Now.ToString(), out filenames);
                    }
                    if (!flag)
                    {
                        Status status = new Status
                        {
                            StatusCode = 0,
                            Message    = "上传图片失败",
                            ReturnTime = DateTime.Now,
                        };
                        return(status);
                    }
                    filenames.Sort();
                    resultfilename       = string.Join("", filenames.ToArray());
                    foodNutrition.Images = resultfilename;
                    dbcontext.Add(foodNutrition);
                    int result = dbcontext.SaveChanges();
                    if (result > 0)
                    {
                        Status status = new Status
                        {
                            StatusCode = 200,
                            Message    = "添加成功",
                            ReturnTime = DateTime.Now,
                        };
                        return(status);
                    }
                    else
                    {
                        Status status = new Status
                        {
                            StatusCode = 0,
                            Message    = "添加失败",
                            ReturnTime = DateTime.Now,
                        };
                        return(status);
                    }
                }
                catch (Exception)
                {
                    Status status = new Status
                    {
                        StatusCode = 0,
                        Message    = "添加失败",
                        ReturnTime = DateTime.Now,
                    };
                    return(status);
                }
            }
        }