public ActionResult GetService(int?id)
        {
            int count = 0;

            if (id != null)
            {
                var            userID      = User.Identity.GetUserId();
                Entity         entity      = residual.Entities.Where(user => user.UserId == userID).FirstOrDefault();
                var            serviceList = entity.ServiceRequest;
                ServiceRequest service     = residual.ServiceRequests.Find(id);
                foreach (var item in serviceList)
                {
                    if (service.RequestDate == item.RequestDate)
                    {
                        count++;
                    }
                }

                if (count >= 3)
                {
                    ViewBag.error = 1;
                    ModelState.AddModelError("CustomError", "Limite máximo de Serviços para o dia " + service.RequestDate.ToShortDateString());
                    var requestList = residual.ServiceRequests.Where(x => x.ServiceRequestStatus.Name.Equals(APPROVED) || x.ServiceRequestStatus.Name.Equals(DONE)).ToList();

                    return(View("ListServices", requestList));
                }
                else
                {
                    entity.ServiceRequest.Add(service);
                    residual.SaveChanges();


                    service.ServiceRequestStatusID = PROGRESS;
                    residual.Entry(service).State  = EntityState.Modified;
                    residual.SaveChanges();
                    return(RedirectToAction("ListServices"));
                }
            }
            return(RedirectToAction("ListServices"));
        }
        public ActionResult RequestServices(ClientViewModel.RequestService model)
        {
            if (ModelState.IsValid)
            {
                DateTime today = DateTime.Today;
                if (model.ServiceDate <= today)
                {
                    ViewBag.error = 1;
                    ModelState.AddModelError("CustomError", "A data do Serviço tem de ser superior a " + today.ToShortDateString());
                    ViewBag.LocationID      = new SelectList(residual.Locations, "ID", "Name");
                    ViewBag.ServicesTypesID = new SelectList(residual.ServicesTypes, "ID", "Name");
                    ViewBag.ResidueTypeID   = new SelectList(residual.ResidueTypes, "ID", "Name");
                    return(View());
                }


                var            userID   = User.Identity.GetUserId();
                Entity         entity   = residual.Entities.Where(user => user.UserId == userID).FirstOrDefault();
                Location       location = residual.Locations.Find(model.LocationID);
                ServiceRequest rs       = new ServiceRequest()
                {
                    RequestDate            = model.ServiceDate,
                    ResidueTypeID          = model.ResidueTypeID,
                    ServiceTypeID          = model.ServicesTypesID,
                    Adress                 = model.Adress,
                    Description            = model.Description,
                    Location               = location.Name,
                    ServiceRequestStatusID = 1,
                };

                entity.ServiceRequest.Add(rs);

                residual.SaveChanges();
                return(View("Index"));
            }

            return(View(model));
        }
Beispiel #3
0
        public async Task <ActionResult> RegisterEmployee(RegisterEmployeeViewModel model)
        {
            if (ModelState.IsValid)
            {
                var userAsp = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(userAsp, model.Password);

                if (result.Succeeded)
                {
                    await UserManager.AddToRoleAsync(userAsp.Id, "Employee");

                    Entity entity = new Entity
                    {
                        Email      = model.Email,
                        UserId     = userAsp.Id,
                        Name       = model.Name,
                        LocationID = model.LocationID,
                        BirthDate  = model.BirthDate,
                        Adress     = model.Adress,
                        Contact    = model.Contact,
                        Gender     = model.Gender
                    };

                    residual.Entities.Add(entity);
                    residual.SaveChanges();

                    // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("ListEntities", "Manage"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }