public string RenderViewToString(string templateName, object model)
        {
            templateName = "~/Areas/WerkbriefTemplates/Views/WerkbriefTemplate/" + templateName + ".cshtml";

            //TODO: Make enumeration for variable templateName.

            ViewData.Model = model;

            try
            {
                using (StringWriter sw = new StringWriter())
                {
                    ViewEngineResult viewResult  = ViewEngines.Engines.FindView(ControllerContext, templateName, null);
                    ViewContext      viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
                    viewResult.View.Render(viewContext, sw);
                    viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);

                    return(sw.ToString());
                }
            }
            catch (Exception ex)
            {
                EmailFunctions.SendExceptionToAdmin(ex);
                TempData["ResultErrors"] = "There was a problem with rendering template for email!";
                return("Error in register form! Email with the problem was send to aministrator.");
            }
        }
Exemplo n.º 2
0
        public ActionResult GetRoles(UserRolesModels model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ApplicationUser user    = context.Users.Where(u => u.UserName.Equals(model.SelectedUsers, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
                    var             account = new AccountController();


                    //   ViewBag.RolesForThisUser = account.UserManager.GetRoles(user.Id);

                    var um = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new AppDbContext()));
                    ViewBag.RolesForThisUser = um.GetRoles(user.Id);

                    ViewBag.Users = context.Users.OrderBy(u => u.UserName).ToList().Select(uu => new SelectListItem {
                        Value = uu.Email, Text = uu.FirstName + " " + uu.LastName
                    }).ToList();

                    // prepopulat roles for the view dropdown
                    var list = context.Roles.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem {
                        Value = rr.Name.ToString(), Text = rr.Name
                    }).ToList();
                    ViewBag.Roles = list;
                }
                catch (Exception ex)
                {
                    EmailFunctions.SendExceptionToAdmin(ex);
                }
            }

            return(View("ManageUserRoles"));
        }
Exemplo n.º 3
0
        public ActionResult DownloadInvoice(int?idInvoice)
        {
            try
            {
                var userId = User.Identity.GetUserId();

                var strResult = db.Fakturis.OrderByDescending(o => o.DateCreated).Where(u => u.UserID == userId).FirstOrDefault().FakturaHtml;

                byte[] bytes = GeneratePDF(strResult);

                Response.Buffer = false;
                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                //Set the appropriate ContentType.
                Response.ContentType = "Application/pdf";
                //Write the file content directly to the HTTP content output stream.
                Response.BinaryWrite(bytes);
                Response.Flush();
                Response.End();
                return(File(bytes, "application/pdf", DateTime.Now.ToString(CultureInfo.InvariantCulture)));
            }
            catch (Exception ex)
            {
                EmailFunctions.SendExceptionToAdmin(ex);
                return(Json(false));
            }
        }
Exemplo n.º 4
0
        public ActionResult RoleAddToUser(UserRolesModels model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ApplicationUser user = context.Users.Where(u => u.UserName.Equals(model.SelectedUsers, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();

                    var um       = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new AppDbContext()));
                    var idResult = um.AddToRole(user.Id, model.SelectedRoles);

                    ViewBag.Users = context.Users.OrderBy(u => u.UserName).ToList().Select(uu => new SelectListItem {
                        Value = uu.Email, Text = uu.FirstName + " " + uu.LastName
                    }).ToList();

                    ViewBag.RolesForThisUser = um.GetRoles(user.Id);

                    ViewBag.SelectedUser = String.Format("{0} {1}", user.FirstName, user.LastName);
                    // prepopulat roles for the view dropdown
                    var list = context.Roles.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem {
                        Value = rr.Name.ToString(), Text = rr.Name
                    }).ToList();
                    ViewBag.Roles = list;

                    TempData["ResultSuccess"] = String.Format("Role added successfully to user {0} {1}!", user.FirstName, user.LastName);

                    return(View("ManageUserRoles"));
                }
                catch (Exception ex)
                {
                    EmailFunctions.SendExceptionToAdmin(ex);
                    TempData["ResultError"] = "Error in adding role!";
                    return(RedirectToAction("ManageUserRoles"));
                }
            }

            return(RedirectToAction("ManageUserRoles"));
        }
        public ActionResult DownloadWerkbrief(int?idWerkbrief)
        {
            try
            {
                var userId = User.Identity.GetUserId();

                var firstOrDefault = db.Werkbriefs.OrderByDescending(o => o.DateCreated).FirstOrDefault(u => u.UserId == userId);
                if (firstOrDefault != null)
                {
                    var strResult = firstOrDefault.WerkbriefHTML;

                    byte[] bytes = GeneratePDF(strResult);

                    Response.Buffer = false;
                    Response.Clear();
                    Response.ClearContent();
                    Response.ClearHeaders();
                    //Set the appropriate ContentType.
                    Response.ContentType = "Application/pdf";
                    //Write the file content directly to the HTTP content output stream.
                    Response.BinaryWrite(bytes);
                    Response.Flush();
                    Response.End();
                    return(File(bytes, "application/pdf", DateTime.Now.ToString(CultureInfo.InvariantCulture)));
                }
                else
                {
                    return(HttpNotFound());
                }
            }
            catch (Exception ex)
            {
                EmailFunctions.SendExceptionToAdmin(ex);
                return(Json(false));
            }
        }
Exemplo n.º 6
0
        public JsonResult SaveInvoiceConfirmed(bool value)
        {
            try
            {
                var userId = User.Identity.GetUserId();
                var model  = GetInvoiceTempModel(userId);

                // TODO: Set Counter for each user for every year

                var tempCounter =
                    db.Counters
                    .FirstOrDefault(c => c.UserID == userId && c.Year == DateTime.Now.Year.ToString());
                if (tempCounter != null)
                {
                    tempCounter.CounterValue++;
                }


                //var counter = db.Counters.OrderByDescending(s => s.CounterValue).FirstOrDefault(c => c.Year == DateTime.Now.Year.ToString());
                //counter.CounterValue++;
                //db.Counters.Add(counter);
                // TODO: Set Counter for each user for every year


                var faktura = new Fakturi();
                faktura.CompanyID      = model.CompanyID;
                faktura.InvoiceDate    = DateTime.Parse(model.InvoiceDate);
                faktura.InvoiceEndDate = DateTime.Parse(model.InvoiceEndDate);

                faktura.TotalPrice    = model.TotalWithDDS;
                faktura.Period        = model.Period ?? " ";
                faktura.FakturaNumber = model.InvoiceNumber;
                faktura.FakturaHtml   = RenderViewToString("Index", model);
                faktura.UserID        = userId;
                faktura.UserName      = User.Identity.Name;
                faktura.DateCreated   = DateTime.Now;
                faktura.DateModified  = DateTime.Now;
                db.Fakturis.Add(faktura);

                var products = new List <ProductInvoice>();
                foreach (var productTemp in model.ProductsListTemp)
                {
                    products.Add(new ProductInvoice()
                    {
                        InvoiceID  = faktura.InvoiceID,
                        DdsID      = productTemp.DdsID,
                        ProductID  = productTemp.ProductID,
                        ProjectID  = productTemp.ProjectID,
                        Quantity   = productTemp.Quanity,
                        TotalPrice = productTemp.ProductTotalPrice
                    });
                }
                products.ForEach(s => db.ProductInvoices.Add(s));
                db.SaveChanges();

                byte[] bytes          = GeneratePDF(faktura.FakturaHtml.Replace("\r\n", string.Empty));
                string strEmailResult = "<img src=\"" + ConfigurationManager.AppSettings["SocialLogoPath"] + "\">";
                EmailFunctions.SendEmail(ConfigurationManager.AppSettings["AdminEmail"], "New invoice from user " + User.Identity.Name, strEmailResult, bytes, DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".pdf");

                return(Json(faktura.FakturaHtml, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                EmailFunctions.SendExceptionToAdmin(ex);
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
        }