示例#1
0
        public async Task <JsonResult> SaveDayComplex(List <UserDayComplex> UserDayComplex, List <UserDayDish> UserDayDish)
        {
            try
            {
                var daycomplexes = UserDayComplex;
                // daycomplexes.AddRange(UserDayComplex);
                //ad771929-223c-48eb-bb53-f042c96396b0
                var duplicateKeys = daycomplexes.GroupBy(x => x)
                                    .Where(group => group.Count() > 1)
                                    .Select(group => group.Key);
                //await  _email.SendEmailAsync("*****@*****.**", "catering", "new order");
                DateTime daydate = DateTime.Now;

                if (daycomplexes.Count > 0)
                {
                    daydate = daycomplexes.First().Date;
                }
                else
                {
                    return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("Empty"))));
                }
                // DateTime ordDay = UserDayDish.FirstOrDefault().Date;

                if (!_userdaydishesrepo.IsAllowDayEdit(daydate, User.GetCompanyID()))
                {
                    return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("OutDate"))));
                }
                //var res = _userdaydishesrepo.OrderedComplexDay(daydate, User.GetUserId(), User.GetCompanyID()).ToList();
                //bool ordered = res.Any(x => daycomplexes.Any(y => y.ComplexId == x.ComplexId));
                if (duplicateKeys.Count() != 0 /*|| ordered*/)
                {
                    //if (duplicateKeys.Count() != 0)
                    //{
                    _logger.LogWarning("Duplicates from front in User Day {0} userId {1}", daydate, User.GetUserId());
                    //}
                    //else
                    //{
                    //    _logger.LogWarning("Already ordered complex in User Day {0} userId {1}", daydate, User.GetUserId());
                    //}
                    return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("Adding to db"))));
                }


                if (await _userdaydishesrepo.SaveComplexAndDishesDay(daycomplexes, UserDayDish, User.GetUserId(), User.GetCompanyID()))
                {
                    //await _email.SendInvoice(User.GetUserId(), daydate, User.GetCompanyID());
                    return(await Task.FromResult(Json(JSONResultResponse.GetOKResult())));
                }
                else
                {
                    return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("Adding to db"))));
                }
            } catch (Exception ex)
            {
                _logger.LogError(ex, "SaveDayComplex error");
                return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("Adding to db"))));
            }
        }
        public async Task <JsonResult> SaveDayComplex(List <UserDayComplex> UserDayComplex, List <UserDayDish> UserDayDish)
        {
            try
            {
                var daycomplexes  = UserDayComplex;
                var duplicateKeys = daycomplexes.GroupBy(x => x)
                                    .Where(group => group.Count() > 1)
                                    .Select(group => group.Key);
                //await  _email.SendEmailAsync("*****@*****.**", "catering", "new order");
                DateTime daydate = DateTime.Now;
                //string userType = _userdaydishesrepo.GetUserType(User.GetUserId()) + "Limit";
                decimal total = 0;
                foreach (var usc in UserDayComplex)
                {
                    total += usc.Quantity * usc.Price;
                }
                //if (!_userdaydishesrepo.CanUserOrder(User.GetUserId(), User.GetCompanyID(), userType, total))
                //{
                //    return await Task.FromResult(Json(JSONResultResponse.GetFailResult("Not enough money")));
                //}

                if (daycomplexes.Count > 0)
                {
                    daydate = daycomplexes.First().Date;
                }
                else
                {
                    return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("Empty"))));
                }


                if (!_userdaydishesrepo.IsAllowDayEdit(daydate, User.GetHotelID()))
                {
                    return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("OutDate"))));
                }
                //var res = _userdaydishesrepo.OrderedComplexDay(daydate, User.GetUserId(), User.GetCompanyID()).ToList();
                //bool ordered = res.Any(x => daycomplexes.Any(y => y.ComplexId == x.ComplexId));
                if (duplicateKeys.Count() != 0 /*|| ordered*/)
                {
                    //if (duplicateKeys.Count() != 0)
                    //{
                    _logger.LogWarning("Duplicates from front in User Day {0} userId {1}", daydate, User.GetUserId());
                    //}
                    //else
                    //{
                    //    _logger.LogWarning("Already ordered complex in User Day {0} userId {1}", daydate, User.GetUserId());
                    //}
                    return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("Adding to db"))));
                }


                if (await _userdaydishesrepo.SaveComplexAndDishesDay(daycomplexes, UserDayDish, User.GetUserId(), User.GetHotelID()))
                {
                    //await _email.SendInvoice(User.GetUserId(), daydate, User.GetCompanyID());
                    return(await Task.FromResult(Json(JSONResultResponse.GetOKResult())));
                }
                else
                {
                    return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("Adding to db"))));
                }
            } catch (Exception ex)
            {
                _logger.LogError(ex, "SaveDayComplex error");
                return(await Task.FromResult(Json(JSONResultResponse.GetFailResult("Adding to db"))));
            }
        }