public EmailResult SendUpload(Bid bid) { var states = new Dictionary<int, string>() { {0, "загружена"}, {1, "утверждена"}, {3, "отклонена"} }; From = dbContext.Settings.First().ServiceEmailUser; var mailTo = dbContext.Settings.First().Email; if (!string.IsNullOrEmpty(mailTo)) To.Add(mailTo); if (bid.Status != BidStatus.Uploaded) To.Add(bid.BidUser.Email); Subject = string.Format("{0} - Заявка {1}", bid.BidUser.FullName, states[(int)bid.Status]); var fullPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + @"\bid_images\" + bid.ImageUrl; byte[] img = System.IO.File.ReadAllBytes(fullPath); Attachments.Add("ticket" + Path.GetExtension(fullPath), img); return Email("SendBid", bid); }
public dynamic AddNewBid(BidViewModel Bid) { if (ModelState.IsValid) { if (Bid.ForUserId != User.id && !(User.IsInRole("Секретарь") || User.IsInRole("Администратор"))) { var error = new { message = "No Rights" }; Response.StatusCode = 401; return Json(error, JsonRequestBehavior.AllowGet); } var date = DateTime.Parse(Bid.Date); if (date < new BidsController().StartMonth() || date.Year > (DateTime.Now.Year + 1)) { var error = new { message = "BadDate" }; //Response.StatusCode = 500; return Json(error, JsonRequestBehavior.AllowGet); } //int sum; //if (!int.TryParse(Bid.Sum, out sum)) //{ // var error = new {message = "BadString"}; // Response.StatusCode = 500; // return Json(error, JsonRequestBehavior.AllowGet); //} var forUser = db.Users.Find(Bid.ForUserId); var availLimit = getAvaliableLimits(forUser, Bid.CategoryId, date.Year); if (availLimit == 0 || (Bid.Sum > availLimit && availLimit != -1)) { var error = new { message = "No Limit", availLimit = availLimit }; // Response.StatusCode = 500; return Json(error, JsonRequestBehavior.AllowGet); } if (Bid.file != null) { string fileName = Guid.NewGuid() + System.IO.Path.GetExtension(Bid.file.FileName); string path = System.IO.Path.Combine(Server.MapPath("~/bid_images"), fileName); //string path = System.IO.Path.Combine(@"D:\projects\SocialPackageGit\SocialPackage\SocialPackage\bid_images", fileName); while (System.IO.File.Exists(path)) // path = System.IO.Path.Combine(@"D:\projects\SocialPackageGit\SocialPackage\SocialPackage\bid_images", Guid.NewGuid() + System.IO.Path.GetExtension(Bid.file.FileName)); path = System.IO.Path.Combine(Server.MapPath("~/bid_images"), Guid.NewGuid() + System.IO.Path.GetExtension(Bid.file.FileName)); Bid.file.SaveAs(path); var bid = new Bid() { BidUser = forUser, category = db.Categories.Find(Bid.CategoryId), Date = DateTime.Parse(Bid.Date), Status = BidStatus.Uploaded, ImageUrl = System.IO.Path.GetFileName(path), Summ = Bid.Sum, BidSender = db.Users.Find(User.id) }; db.Bids.Add(bid); db.SaveChanges(); Task.Run(() => new MailController(db).SendUpload(bid).Deliver()); } return Json(new { message = "OK" }, JsonRequestBehavior.AllowGet); } else { var error = new { message = "BadString" }; //Response.StatusCode = 500; return Json(error, JsonRequestBehavior.AllowGet); } }