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")))); } }