예제 #1
0
 private void SendNotification_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         Hire item = (Hire)expired_DataGrid.SelectedItem;
         if (item is null)
         {
             return;
         }
         else
         {
             if (item.isExpired is false)
             {
                 MessageBox.Show("You can't notify not expired hire!");
             }
             else
             {
                 string message = $"You should return this item:\n" +
                                  $"Title: {Main.Library.GetTitle(item.ItemID)}, " +
                                  $"EAN-13: {item.ISBN}\nDelay penalty :{item.Penalty}";
                 Main.Library.AddNotification(message, item.UserID);
                 MessageBox.Show("Notification was sent.");
             }
         }
     }
     catch
     {
         return;
     }
 }
        //
        // GET: /Hires/Create

        public ActionResult Create()
        {
            List <SelectListItem> lstUsers  = new List <SelectListItem>();
            List <SelectListItem> lstVideos = new List <SelectListItem>();

            var users = (from u in db.Users select u).ToArray();

            for (int i = 0; i < users.Length; i++)
            {
                lstUsers.Add(new SelectListItem {
                    Text = users[i].FirstName + " " + users[i].LastName, Value = users[i].UserId.ToString()
                });
            }
            ViewBag.UserList = lstUsers;
            //ViewData["UserList"] = lstUsers;

            var videos = (from v in db.Videos select v).ToArray();

            for (int i = 0; i < videos.Length; i++)
            {
                lstVideos.Add(new SelectListItem {
                    Text = videos[i].Title, Value = videos[i].VideoId.ToString()
                });
            }
            ViewBag.VideoList = lstVideos;
            //ViewData["VideoList"] = lstVideos;
            Hire h = new Hire();

            h.User  = db.Users.Find(1);
            h.Video = db.Videos.Find(1);
            return(View("Create", h));
        }
예제 #3
0
        public async Task <IHttpActionResult> PutHire(int id, Hire hire)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != hire.HireID)
            {
                return(BadRequest());
            }

            db.Entry(hire).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!HireExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #4
0
        public async Task <HireDto> HireItem(HireViewModel model)
        {
            var user = await _context.Users.FindAsync(model.UserId);

            if (user == null)
            {
                throw new UserNotFoundException();
            }
            var item = await _context.Items.FindAsync(model.ItemId);

            if (item == null)
            {
                throw new ItemNotFoundException();
            }
            if (!item.IsAvailable)
            {
                throw new ItemNotAvailableException();
            }

            var reservation = await _context.Reservations.Where(r => r.ItemId == item.ItemId && r.UserId == user.UserId)
                              .ToListAsync();

            foreach (var element in reservation)
            {
                _context.Remove(element);
            }

            var hire = new Hire(DateTime.Now, user, item);
            await _context.Hires.AddAsync(hire);

            item.IsAvailable = false;
            await _context.SaveChangesAsync();

            return(new HireDto(hire));
        }
예제 #5
0
        public async Task <IHttpActionResult> PostHire(Hire hires)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //db.Entry(hire).Reference(p => p.HireID).Load();

            db.Hires.Add(hires);
            await db.SaveChangesAsync();

            //new code
            var dto = new HireDetailsDto()
            {
                HireID      = hires.HireID,
                FirstName   = hires.FirstName,
                Surname     = hires.Surname,
                Address     = hires.Address,
                PhoneNumber = hires.PhoneNumber,
                StartDate   = hires.StartDate,
                FinishDate  = hires.FinishDate
            };

            return(CreatedAtRoute("DefaultApi", new { id = hires.HireID }, hires));
        }
예제 #6
0
        public IActionResult Create(int id)
        {
            if (SignInManager.IsSignedIn(User))
            {
                var Client = (from client in _context.Client
                              where client.Email.Equals(User.Identity.Name)
                              select client).FirstOrDefault();

                Hire hire = new Hire();
                hire.ClientId       = Client.Id;
                hire.ProfessionalId = id;
                hire.HireDate       = DateTime.Now;

                var professional = _context.Professional.Find(id);
                professional.IsBooked = true;
                _context.Add(hire);
                _context.SaveChanges();



                var hireRecord = _context.Hire
                                 .Include(h => h.Professional)
                                 .Include(h => h.Client)
                                 .FirstOrDefault(h => h.Id == hire.Id);
                return(View(hireRecord));
            }



            return(View());
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Hire hire = db.HireTransactions.Find(id);

            db.HireTransactions.Remove(hire);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #8
0
 public HireDto(Hire hire)
 {
     HireId         = hire.HireId;
     HireDateTime   = hire.HireDateTime;
     ReturnDateTime = hire.ReturnDateTime;
     Item           = new ItemDto(hire.Item);
     User           = new UserDto(hire.User);
 }
예제 #9
0
        public async Task <Guid> Create(Hire employee)
        {
            await _context.AddAsync(employee);

            await _context.SaveChangesAsync();

            return(employee.Id);
        }
예제 #10
0
        public Task DeclineHire(Guid id)
        {
            Hire hire = _hireStore.GetById(id);

            hire.Status = HireStatus.Declined;

            return(_hireStore.Update(hire));
        }
예제 #11
0
 HireVm(Hire row)
 {
     Hire_Id      = row.Hire_Id;
     Hire_Date    = row.Hire_Date;
     Hire_Remarks = row.Hire_Remarks;
     Cust_Id      = row.Cust_Id;
     prof_Id      = row.prof_Id;
 }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            Hire hire = await db.Hires.FindAsync(id);

            db.Hires.Remove(hire);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
예제 #13
0
 public IActionResult PostRent([FromBody] Hire rent)
 {
     if (!ModelState.IsValid)
     {
         return BadRequest(ModelState);
     }
     _service.AddHire(rent);
     return CreatedAtAction("GetRent", new { id = rent.Id }, rent);
 }
예제 #14
0
        public Task <Guid> CreateHire(HireDTO hireDTO)
        {
            Hire hire = _mapper.Map <HireDTO, Hire>(hireDTO);

            hire.Status          = HireStatus.Open;
            hire.TotalHiringRate = GetTotalHiringRate(hire);

            return(_hireStore.Create(hire));
        }
 public ActionResult Edit(Hire hire)
 {
     if (ModelState.IsValid)
     {
         db.Entry(hire).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(hire));
 }
        //
        // GET: /Hires/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Hire hire = db.HireTransactions.Find(id);

            if (hire == null)
            {
                return(HttpNotFound());
            }
            return(View(hire));
        }
        public async Task <IActionResult> OnPostEditMissionAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null || user.Id != PostUserId || PostId == null || !user.StudentIdentityConfirmed)
            {
                return(RedirectToPage("Index"));
            }
            var post = new Hire();

            if (HireInput.GoodsPhoto != null && HireInput.GoodsPhoto.Length != 0)
            {
                var uploadFolder   = Path.Combine(_iWebHostEnvironment.WebRootPath, "images", "distribute");
                var uploadFileName = Guid.NewGuid() + Path.GetExtension(HireInput.GoodsPhoto.FileName);
                var filePath       = Path.Combine(uploadFolder, uploadFileName);
                if (!Directory.Exists(uploadFolder))
                {
                    Directory.CreateDirectory(uploadFolder);
                }
                await HireInput.GoodsPhoto.CopyToAsync(new FileStream(filePath, FileMode.Create));

                post.GoodsPhotoUrl = "/images/distribute/" + uploadFileName;
            }
            else
            {
                post.GoodsPhotoUrl = GoodsUrl;
            }
            var time = DateTime.UtcNow;

            post.Id                = PostId;
            post.GoodsName         = HireInput.GoodsName;
            post.GoodsPrice        = HireInput.GoodsPrice;
            post.GoodsDescription  = HireInput.GoodsDescription;
            post.GoodsCategory     = "未实现";
            post.GoodsRent         = HireInput.GoodsRent;
            post.TimeLimit         = HireInput.TimeLimit;
            post.TypeId            = "00000000-0000-0000-0000-000000000004";
            post.PostUserId        = user.Id;
            post.PostTime          = time;
            post.InvalidTime       = time.AddDays(2.0);
            post.MissionNotes      = HireInput.MissionNotes;
            post.PosterAddress1    = HireInput.PosterAddress1;
            post.PosterAddress2    = HireInput.PosterAddress2;
            post.PosterPhoneNumber = HireInput.PosterPhoneNumber;
            post.ExpiredTime       = time.AddDays(HireInput.TimeLimit);
            var result = _hire.Update(post);

            if (result == 1)
            {
                StatusMessage = "Success:修改成功";
                return(RedirectToPage("/Hire", new { Area = "Posts", postId = post.Id }));
            }
            StatusMessage = "Success:修改失败";
            return(Page());
        }
예제 #18
0
        public ActionResult Payment(int id)
        {
            Hire hr = hrdb.GetDetailsByHireId(id);

            Session.Add("hireid", id.ToString());
            PaymentViewModel payvm = new PaymentViewModel();

            payvm.Amount = hr.TotalFee;

            return(View(payvm));
        }
예제 #19
0
        public void HireRentalDaysTest()
        {
            // arrange
            Hire b = new Hire();

            // act
            b.StartDate  = new DateTime(2017, 03, 01);
            b.FinishDate = new DateTime(2017, 03, 11);
            // assert
            Assert.AreEqual(b.RentalDays, 10);
        }
        public async Task <ActionResult> Edit([Bind(Include = "HireID,BikeID,FirstName,Surname,Address,PhoneNumber,StartDate,FinishDate")] Hire hire)
        {
            if (ModelState.IsValid)
            {
                db.Entry(hire).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.BikeID = new SelectList(db.Bikes, "BikeID", "BikeID", hire.BikeID);
            return(View(hire));
        }
예제 #21
0
 private void button3_Click(object sender, EventArgs e)
 {
     foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
     {
         Hire hire = row.DataBoundItem as Hire;
         if (hire != null)
         {
             HireForm hireForm = new HireForm(hire);
             hireForm.MdiParent = this.ParentForm;
             hireForm.Show();
         }
     }
 }
        public async Task <ActionResult> Create([Bind(Include = "BikeID,FirstName,Surname,Address,PhoneNumber,StartDate,FinishDate")] Hire hire) //CG: Removed HireID from list
        {
            if (ModelState.IsValid)
            {
                db.Hires.Add(hire);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.BikeID = new SelectList(db.Bikes, "Make", "Model", hire.BikeID); //CG:(db.Bikes, "BikeID", "Make", hire.BikeID); //CG: (db.Bikes, "Make", "Model", hire.BikeID)
            return(View(hire));
        }
예제 #23
0
        private Decimal GetTotalHiringRate(Hire hire)
        {
            if (hire.TeamId.HasValue)
            {
                Team team = _teamStore.GetById(hire.TeamId.Value);

                return(_pricePolicyService.CalculateTeamHiringHourPrice(
                           team.Members.Select(e => e.HourRate).ToArray()));
            }

            Employee employee = _employeeStore.GetById(hire.EmployeeId.Value);

            return(_pricePolicyService.CalculateHiringHourPrice(employee.HourRate, 1));
        }
예제 #24
0
        public async Task <IHttpActionResult> DeleteHire(int id)
        {
            Hire hire = await db.Hires.FindAsync(id);

            if (hire == null)
            {
                return(NotFound());
            }

            db.Hires.Remove(hire);
            await db.SaveChangesAsync();

            return(Ok(hire));
        }
/*
 *       //CG: 07/04/17 Original colde before Filtering
 *
 *      // GET: HiresMVC
 *      public async Task<ActionResult> Index()
 *      {
 *          var hires = db.Hires.Include(h => h.Bike);
 *          return View(await hires.ToListAsync());
 *      }
 */

        // GET: HiresMVC/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Hire hire = await db.Hires.FindAsync(id);

            if (hire == null)
            {
                return(HttpNotFound());
            }
            return(View(hire));
        }
예제 #26
0
 public void HireEquipment(int equipmentId, ApplicationUser currentUser)
 {
     using (ISession session = _sessionFactory.OpenSession())
     {
         var equipment = session.Query <Equipment>().First(e => e.Id == equipmentId);
         var hire      = new Hire()
         {
             Equipment = equipment,
             User      = currentUser,
             Status    = "Zarezerwowany"
         };
         session.Save(hire);
     }
 }
예제 #27
0
        public void hireCTRL()
        {
            User us = db.Users.Where(x => x.userID == userid).First();
            Hire hr = new Hire();

            int count = db.Hires.Count();

            if (count <= 0)
            {
                return;
            }
            else
            {
                hr = db.Hires.Where(x => x.UserID == userid).First();
            }


            DateTime now = DateTime.Now;

            foreach (Hire item in db.Hires.Where(x => x.UserID == userid).ToList())
            {
                DataStartingDate = item.hireStart;
                DataStartingEnd  = item.hireEnd;

                int ilksecim = DateTime.Compare(now, DataStartingDate);
                int sonsecim = DateTime.Compare(now, DataStartingEnd);

                if (ilksecim == 1 && sonsecim == 1)
                {
                }
                else
                {
                    Car cr = db.Cars.Where(x => x.CarID == item.carID).First();
                    flowLayoutPanel1.Show();
                    label5.Hide();
                    hiredCarPanel hcp = new hiredCarPanel();
                    hcp.Brand     = cr.carBrand;
                    hcp.Model     = cr.carModel;
                    hcp.Gear      = cr.gear;
                    hcp.Fuel      = cr.fuel;
                    hcp.Type      = cr.carType;
                    hcp.image     = new Bitmap(cr.carPic);
                    hcp.HireStart = cr.hireStart.ToString();
                    hcp.HireEnd   = cr.hireEnd.ToString();

                    flowLayoutPanel1.Controls.Add(hcp);
                }
            }
        }
예제 #28
0
        public void ReturnCar(Hire rent)
        {
            int carId = _context.Hires
                        .Where(y => y.Id == rent.Id)
                        .Select(z => z.HiredCar.Id)      /*.Cast<int>()*/
                        .FirstOrDefault();
            var car = _context.Cars
                      .Where(x => x.Id == carId)
                      .SingleOrDefault();

            car.IsHired = false;
            _context.Update(car);
            _context.Update(rent);
            _context.SaveChanges();
        }
예제 #29
0
 //********************** HIRE METHODS *******************
 public void DeleteHire(Hire hire)
 {
     if (rent.DeleteHire(hire))
     {
         User u = users.FirstOrDefault(x => x.UserID == hire.UserID);
         u.HireCount--;
         if (hire.isExpired)
         {
             u.ExpiredCount--;
         }
         libraryEntities.Find(x => x.EntityID == hire.ItemID).IsRented = false;
         loader.saveRentData(ref rent.hires);
         loader.saveEntityData(ref libraryEntities);
     }
 }
        // GET: HiresMVC/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Hire hire = await db.Hires.FindAsync(id);

            if (hire == null)
            {
                return(HttpNotFound());
            }
            ViewBag.BikeID = new SelectList(db.Bikes, "BikeID", "BikeID", hire.BikeID);
            return(View(hire));
        }