Ejemplo n.º 1
0
        public ActionResult Edit([Bind(Include = "Email,FirstName,LastName,DateOfBirth,Password,UserType,Country,City,Address,ApartmentDescription,ApartmentPrice,UserId")] User user)
        {
            bool flag = false;

            foreach (User item in db.Users)
            {
                if (item.UserId != user.UserId && item.Email.Equals(user.Email))
                {
                    flag = true;
                    ViewBag.EmailError = "Email is taken";
                }
            }
            if (!flag)
            {
                User sameUser = db.Users.Find(user.UserId); //is used because otherwise elements that cant be changed will be null in db
                user.Country          = sameUser.Country;
                user.City             = sameUser.City;
                user.Address          = sameUser.Address;
                user.Balance          = sameUser.Balance;
                user.UserPicture      = sameUser.UserPicture;
                user.ApartmentPicture = sameUser.ApartmentPicture;

                db.Entry(db.Users.Where(x => x.UserId == user.UserId).AsQueryable().FirstOrDefault()).CurrentValues.SetValues(user);
                db.SaveChanges();
                if (IsUserAdmin() && user.UserType == 0) //if user edited themselves from admin to regular
                {
                    Login(user.Email, user.Password);
                }
                return(RedirectToAction("../HomePage")); //returns to index if edited successfully
            }
            return(View(user));
        }
Ejemplo n.º 2
0
 public ActionResult Edit([Bind(Include = "CycleId,Start,End")] Cycle cycle)
 {
     if (ModelState.IsValid)
     {
         db.Entry(cycle).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(cycle));
 }
Ejemplo n.º 3
0
 public ActionResult Edit([Bind(Include = "RequestId,UserId,From,To,Start,End,State")] Request request)
 {
     if (ModelState.IsValid)
     {
         db.Entry(request).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.UserId = new SelectList(db.Users, "UserId", "Email", request.UserId);
     return(View(request));
 }
Ejemplo n.º 4
0
        //deletes a request
        //delete every cycle that contains the user
        //request's user -> go through all usercycles, save all cycles to a list.
        //go through cycle list -> delete all user cycles inside, and then delete the cycle
        //change request state according to bool parameter
        public void DeleteRequest(Request request, bool didSucceed)
        {
            List <Request> reqList = new List <Request>(); //actual requests from db

            //get all requests from db that have the same userId and 'ongoing' state
            reqList = (from dbReq in db.Requests where dbReq.UserId == request.UserId && dbReq.State == 0 select dbReq).ToList();
            //delete corresponding vertexes from graphs
            foreach (Request r in reqList)
            {
                GetGraph(Get_DateRange_String(r)).DeleteVertex(r.UserId.ToString(), r.From, r.To);
            }
            List <Cycle> cycles = new List <Cycle>();
            int          userId = request.UserId;

            foreach (UserCycle uc in db.UserCycles.Include("Cycle"))
            {
                if (uc.UserId == userId)
                {
                    cycles.Add(uc.Cycle);
                }
            }
            foreach (Cycle cycle in cycles)
            {
                foreach (UserCycle uc in cycle.UserCycles.ToList())
                {
                    db.UserCycles.Remove(uc);
                }
                db.Cycles.Remove(cycle);
            }
            foreach (Request r in reqList)
            {
                if (didSucceed && r.RequestId == request.RequestId)
                {
                    r.State = 1;
                }
                else
                {
                    r.State = 2;
                }
                db.Entry(r).Property("State").IsModified = true;
            }
            db.SaveChanges();
        }