private BotGoldReportUserData AddUser(BotGoldReportUserData user) { using (var db = new KiaGalleryMainEntities()) { var userEntity = db.BotGoldReportUserData.FirstOrDefault(x => x.ChatId == user.ChatId); if (userEntity == null) { user.CreatedDate = DateTime.Now; user.BotUserType = 0; db.BotGoldReportUserData.Add(user); } else { userEntity.UserType = user.UserType; userEntity.UserId = user.UserId; userEntity.ChatId = user.ChatId; userEntity.FirstName = user.FirstName; userEntity.LastName = user.LastName; userEntity.Username = user.Username; } db.SaveChanges(); user.BranchId = userEntity.BranchId; return(userEntity); } }
private void sendGoldReport() { using (var db = new KiaGalleryMainEntities()) { var data = db.BranchGolds.Where(x => x.CreateDate >= DateTime.Today).GroupBy(x => x.Branches).Select(y => new { weight = y.OrderByDescending(x => x.Id).Select(x => x.Weight).FirstOrDefault(), price = y.OrderByDescending(x => x.Id).Select(x => x.Price).FirstOrDefault(), branch = y.Key.Name }).ToList(); var persianDate = DateUtility.GetPersianDate(DateTime.Now); double sum = data.Sum(x => x.weight); long priceSum = data.Sum(x => x.price); var rate = priceSum / sum * 4.3318; string message = persianDate + "\nجمع کل: " + sum + " گرم" + "\n جمع قیمت: " + Core.ToSeparator(priceSum) + " ریال " + " \nمیانگین مظنه: " + Core.ToSeparator(rate) + " ریال " + "\n"; foreach (var item in data) { message += "شعبه " + item.branch + ": " + item.weight + " گرم " + Core.ToSeparator(item.price) + " ریال \n"; } if (sum > 0) { var user = db.BotGoldReportUserData.Where(x => x.BotUserType == 1).ToList(); user.ForEach(x => { var task = Bot.SendTextMessageAsync(x.ChatId, message.Trim()); task.Wait(); }); } } }