Beispiel #1
0
 private int GetRegion(string userId)
 {
     using (var db = new ExpenseDBEntities())
     {
         return(db.UserRegions.Where(x => x.Email == userId).FirstOrDefault().RegionId);
     }
 }
Beispiel #2
0
        public ActionResult Index()
        {
            var model = new List <ExpenseRecord>();

            if (HttpContext.User.IsInRole("Team Lead"))
            {
                int tlregionId = GetRegion(HttpContext.User.Identity.Name);
                using (var db = new ExpenseDBEntities())
                {
                    foreach (var item in db.ExpenseRecords)
                    {
                        if (GetRegion(item.RequesterUserId) == tlregionId)
                        {
                            model.Add(item);
                        }
                    }
                    model = model.OrderByDescending(x => x.ExpenseRecordId).ToList();
                }
            }
            else
            {
                using (var db = new ExpenseDBEntities())
                {
                    model = db.ExpenseRecords.Where(x => x.RequesterUserId == HttpContext.User.Identity.Name).OrderByDescending(x => x.ExpenseRecordId).ToList();
                }
            }
            return(View(model));
        }
Beispiel #3
0
 ActionResult GetModel(int id, out ExpenseRecord model)
 {
     using (var db = new ExpenseDBEntities())
     {
         model = db.ExpenseRecords.Where(x => x.ExpenseRecordId == id).FirstOrDefault();
         if (model == null)
         {
             return(View("CustomError", null, "This record does not exist."));
         }
         //if (HttpContext.User.IsInRole("Employee") && model.RequesterUserId != HttpContext.User.Identity.Name)
         //    return View("CustomError", null, "This user does not have permission to perform this action.");
     }
     return(null);
 }
Beispiel #4
0
        public ActionResult Delete(int id)
        {
            ExpenseRecord model;
            var           result = GetModel(id, out model);

            if (result != null)
            {
                return(result);
            }
            using (var db = new ExpenseDBEntities())
            {
                db.Entry(model).State = System.Data.Entity.EntityState.Deleted;
                db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
Beispiel #5
0
        public ActionResult Reject(ExpenseRecord model)
        {
            var expense = new ExpenseRecord();

            using (var db = new ExpenseDBEntities())
            {
                expense = db.ExpenseRecords.Where(x => x.ExpenseRecordId == model.ExpenseRecordId).FirstOrDefault();
            }
            expense.ApprovalStatusId       = 2;
            expense.ApproverComment        = "Looks good";
            expense.ApproverId             = HttpContext.User.Identity.Name;
            expense.ApprovedOrRejectedDate = DateTime.Now;
            using (var db = new ExpenseDBEntities())
            {
                db.Entry(expense).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();
            }
            ModelState.Clear();
            return(RedirectToAction("Index"));
        }
Beispiel #6
0
        public ActionResult Add(ExpenseRecord model)
        {
            var fileName = Path.GetFileNameWithoutExtension(model.ReceiptImageFile.FileName);
            var extn     = Path.GetExtension(model.ReceiptImageFile.FileName);

            fileName = fileName + DateTime.Now.ToString("yymmssfff") + extn;

            model.ReceiptImagePath = "~/Image/" + fileName;
            model.ReceiptImageFile.SaveAs(Path.Combine(Server.MapPath("~/Image"), fileName));
            model.ApprovalStatusId = (byte)ApprovalStatus.Submitted;
            model.RequesterUserId  = HttpContext.User.Identity.Name;
            model.SubmittedDate    = DateTime.Now;

            using (var db = new ExpenseDBEntities())
            {
                db.ExpenseRecords.Add(model);
                db.SaveChanges();
            }
            ModelState.Clear();
            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    //Assign Role to user Here
                    await this.UserManager.AddToRoleAsync(user.Id, model.Name);

                    //Ends Here

                    using (var db = new ExpenseDBEntities())
                    {
                        db.UserRegions.Add(new UserRegion {
                            Email = model.Email, RegionId = (int)Enum.Parse(typeof(Region), model.Region)
                        });
                        db.SaveChanges();
                    }

                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    return(RedirectToAction("Index", "Expense"));
                }

                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            ViewBag.Name = new SelectList(context.Roles.ToList(), "Name", "Name");
            return(View(model));
        }