Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);

            }
        }