コード例 #1
0
        public async Task <IActionResult> Create(long BuildingId, [Bind("MOID,Date,Carpet,Appliances,Walls,Cleaning_fee,Damage_fee,fees_paid,TenantTID,UnitUID")] Move_out move_out)
        {
            if (ModelState.IsValid)
            {
                var mounit = from m in _context.Unit where m.UID == move_out.UnitUID select m;

                var motenant = from u in mounit
                               join mi in _context.Move_in
                               on u.UID equals mi.UnitUID into temp
                               from lj in temp.DefaultIfEmpty()
                               join t in _context.Tenant
                               on lj.TenantTID equals t.TID into temp2
                               from lj2 in temp2.DefaultIfEmpty()
                               select lj2;

                ViewBag.TenantTID = new SelectList(motenant, "TID", "Last_name");
                ViewBag.UnitUID   = new SelectList(mounit, "UID", "Unit_Number");

                var move_in = from m in _context.Move_in where m.TenantTID == move_out.TenantTID select m;

                foreach (var m in move_in)
                {
                    if (move_out.Date < m.Date)
                    {
                        ViewBag.Message = "Invalid move out date!";
                        return(View(move_out));
                    }
                }

                if (move_out.Date > DateTime.Today.AddDays(1))
                {
                    ViewBag.Message = "Move out date cannot be in the future";
                    return(View(move_out));
                }

                var tenant = await _context.Tenant.FindAsync(move_out.TenantTID);

                tenant.Current        = "No";
                tenant.ReservedUnit   = null;
                tenant.Lease_end_date = move_out.Date;
                _context.Add(move_out);
                _context.Update(tenant);

                var unit = await _context.Unit.FindAsync(move_out.UnitUID);

                unit.Occupied      = "No";
                unit.Ready_to_rent = "No";

                _context.Update(unit);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "Buildings", new { id = unit.BuildingId }));
            }

            return(View(move_out));
        }
コード例 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("MOID,Date,Carpet,Appliances,Walls,Cleaning_fee,Damage_fee,fees_paid,TenantTID,UnitUID")] Move_out move_out)
        {
            var tenant = from t in _context.Tenant where t.TID == move_out.TenantTID select t;
            var unit   = from u in _context.Unit where u.UID == move_out.UnitUID select u;

            ViewData["TenantTID"] = new SelectList(tenant, "TID", "Last_name");
            ViewData["UnitUID"]   = new SelectList(unit, "UID", "Unit_Number");

            if (id != move_out.MOID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(move_out);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!Move_outExists(move_out.MOID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                var units = await _context.Unit.FindAsync(move_out.UnitUID);

                return(RedirectToAction("Details", "Buildings", new { id = units.BuildingId }));
            }
            return(View(move_out));
        }