Inheritance: IPrincipal
Beispiel #1
0
        protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
        {
            var         cu = Context.User;
            EfDbContext db = new EfDbContext();

            if (db.Users.Count() != 0 && db.Users.Any(c => c.Roles.Any(r => r.RoleName == "Администратор")))
            {
                string currentSid = null;
                var    identity   = Context.User.Identity as WindowsIdentity;
                if (identity.User != null)
                {
                    currentSid = identity.User.Value;
                }


                SocialPackage.Infrastructure.Entities.User usr = db.Users.Include("Limit").FirstOrDefault(el => el.Login == currentSid);
                if (usr != null)
                {
                    usr.Identity = identity;
                    Context.User = usr;
                    //throw new MembershipCreateUserException("заведите пользователя в базе данных");
                }
            }
            else
            {
                var user = new User
                {
                    Roles = new List <UserRole>
                    {
                        new UserRole
                        {
                            RoleName = "Администратор"
                        }
                    }
                };

                user.Identity = Context.User.Identity as WindowsIdentity;
                Context.User  = user;
            }
        }
Beispiel #2
0
        public ActionResult AddUser(UserViewModel user)
        {
            if (ModelState.IsValid)
            {
                var usr = new User()
                {
                    FullName = user.FullName,
                    Email = user.Email,
                    Login = user.Login,
                    Limit = db.Limit.Find(user.SelectedLimitId),
                    Roles = user.SelectedRoles.Select(el => db.UserRole.Find(el)).ToList()
                };

                db.Users.Add(usr);
                db.SaveChanges();
                FixBid(user.realProezdLimit, user.realFitnesLimit, user.realCultureEvent, usr);
                return RedirectToAction("Index");
            }
            return View(new UserViewModel()
            {
                AvailLimits = db.Limit.ToList()
            });
        }
        public ActionResult Index(SettingsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            //context.Categories.RemoveRange(context.Categories);
            //context.Limit.RemoveRange(context.Limit);
            //var categories = new List<Category> {
            //    new Category { Color = "#755bee", Name="Проездные"},
            //    new Category { Color = "#3ec172", Name="Фитнес"},
            //    new Category { Color = "#e73f72", Name="Соц. Мероприятия"}
            //};
            Limit firstUserLimit;
            if (dbContext.Limit.Count() == 0)
            {
                firstUserLimit = new Limit
                {
                    CultureEvents = -1,
                    Fitnes = -1,
                    Proezd = -1,
                    Name = "Пустой лимит"
                };
                dbContext.Limit.Add(firstUserLimit);
            }
            else
                firstUserLimit = dbContext.Limit.First();

            if (dbContext.Categories.Count() == 0)
            {
                var categories = new List<Category> {
                    new Category { Color = "#755bee", Name="Проездные"},
                    new Category { Color = "#3ec172", Name="Фитнес"},
                    new Category { Color = "#e73f72", Name="Соц. Мероприятия"}
                };
                dbContext.Categories.AddRange(categories);
            }

            List<UserRole> roles;
            if (dbContext.UserRole.Count() == 0)
            {
                roles = new List<UserRole> {
                    new UserRole { RoleName = "Пользователь"},
                    new UserRole { RoleName = "Администратор"},
                    new UserRole { RoleName = "Бухгалтер"},
                    new UserRole { RoleName = "Секретарь"}
                };
                dbContext.UserRole.AddRange(roles);
            }
            else
                roles = dbContext.UserRole.ToList();

            var user = new User
            {
                FullName = model.User.FullName,
                Email = model.User.Email,
                Login = model.User.Login,
                Roles = roles.Where(c => c.RoleName == "Администратор").ToList(),
                Limit = firstUserLimit
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();
            Session.Abandon();
            return RedirectToAction("Index", "Users");
        }
Beispiel #4
0
 private void FixBid(decimal proezd, decimal fitnes, decimal soc, User user)
 {
     var now = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
     if (user.Limit.Proezd > proezd)
         db.Bids.Add(new Bid() { BidUser = user, BidSender = user, category = db.Categories.Find(1), FixBid = true, Date = now, Status = BidStatus.Paid, Summ = user.Limit.Proezd - proezd, ImageUrl = "fix" });
     if (user.Limit.Fitnes > fitnes)
         db.Bids.Add(new Bid() { BidUser = user, BidSender = user, category = db.Categories.Find(2), FixBid = true, Date = now, Status = BidStatus.Paid, Summ = user.Limit.Fitnes - fitnes, ImageUrl = "fix" });
     if (user.Limit.CultureEvents > soc)
         db.Bids.Add(new Bid() { BidUser = user, BidSender = user, category = db.Categories.Find(3), FixBid = true, Date = now, Status = BidStatus.Paid, Summ = user.Limit.CultureEvents - soc, ImageUrl = "fix" });
     db.SaveChanges();
 }
Beispiel #5
0
        private decimal getAvaliableLimits(User user, int categoryId, int year)
        {
            var userLimitsInCurrYear = db.Bids.Where(el => el.BidUser.id == user.id && el.Date.Year == year);

            decimal limit = 0;
            switch (categoryId)
            {
                case 1:
                    limit = user.Limit.Proezd > 0 ? user.Limit.Proezd - userLimitsInCurrYear.Where(el => el.category.id == 1 && el.Status != BidStatus.Declined).ToArray().Sum(el => el.Summ) : user.Limit.Proezd;
                    break;
                case 3:
                    limit = user.Limit.CultureEvents > 0 ? user.Limit.CultureEvents - userLimitsInCurrYear.Where(el => el.category.id == 3 && el.Status != BidStatus.Declined).ToArray().Sum(el => el.Summ) : user.Limit.CultureEvents;
                    break;
                case 2:
                    limit = user.Limit.Fitnes > 0 ? user.Limit.Fitnes - userLimitsInCurrYear.Where(el => el.category.id == 2 && el.Status != BidStatus.Declined).ToArray().Sum(el => el.Summ) : user.Limit.Fitnes;
                    break;
            }
            return limit;
        }