public async Task <ActionResult <AdoptionRequest> > AddAdoptionRequest([FromBody] AdoptionRequest adoptionRequest)
        {
            _context.adoptionRequests.Add(adoptionRequest);
            try
            {
                //EmailHelper.EmailHelper helper = new EmailHelper.EmailHelper();

                //helper.sendEmail(new MailAddress("*****@*****.**"), "*****@*****.**", "Pet Adoption", adoptionRequest.AdoptionMessasge);

                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (AdoptionRequestExists(adoptionRequest.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(Ok());
        }
예제 #2
0
        // GET: AdoptionRequests/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            User sessionUser = (User)System.Web.HttpContext.Current.Session["user"];

            if (sessionUser != null)
            {
                AdoptionRequest adoptionRequest = db.AdoptionRequests.Include(adopReq => adopReq.Pet).Include(adopReq => adopReq.User).SingleOrDefault(ar => ar.Id == id);

                if (adoptionRequest == null)
                {
                    return(HttpNotFound());
                }
                else if (sessionUser.IsAdmin || sessionUser.Id == adoptionRequest.User.Id)
                {
                    string UserName = db.Users.Find(adoptionRequest.User.Id).Username;
                    ViewBag.UserName = UserName;
                    string PetName = db.Pets.Find(adoptionRequest.Pet.Id).Name;
                    ViewBag.PetName = PetName;

                    return(View(adoptionRequest));
                }
                else
                {
                    return(RedirectToAction("Index", "Error", new { message = "Not autorized!" }));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Error", new { message = "You have to login first.." }));
            }
        }
    public async Task BindModelAsync(ModelBindingContext bindingContext)
    {
        // Read Cat from Body
        var memoryStream = new MemoryStream();
        var body         = bindingContext.HttpContext.Request.Body;
        var reader       = new StreamReader(body, Encoding.UTF8);
        var text         = reader.ReadToEnd();
        var cat          = JsonConvert.DeserializeObject <Cat>(text);
        // Read Adoption Request from query or route
        var adoptionRequest = new AdoptionRequest();
        var properties      = typeof(AdoptionRequest).GetProperties();

        foreach (var property in properties)
        {
            var valueProvider = bindingContext.ValueProvider.GetValue(property.Name);
            if (valueProvider != null)
            {
                property.SetValue(adoptionRequest, valueProvider.FirstValue);
            }
        }
        // Merge
        var model = new CatAdoptionRequest()
        {
            Cat             = cat,
            AdoptionRequest = adoptionRequest
        };

        bindingContext.Result = ModelBindingResult.Success(model);
        return;
    }
예제 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            AdoptionRequest adoptionRequest = db.AdoptionRequests.Find(id);

            db.AdoptionRequests.Remove(adoptionRequest);
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
예제 #5
0
        // GET: AdoptionRequests/CreateWithPet
        public ActionResult CreateWithPet(int?id)
        {
            User sessionUser = (User)System.Web.HttpContext.Current.Session["user"];

            if (db.Pets.Find(id).IsAdopted)
            {
                return(RedirectToAction("Index", "Error", new { message = "The pet is alredy adopted" }));
            }
            else
            {
                if (sessionUser != null)
                {
                    if (sessionUser.Id == db.Users.Find(sessionUser.Id).Id)
                    {
                        AdoptionRequest adoptionRequest = new AdoptionRequest();
                        adoptionRequest.User                = db.Users.Find(sessionUser.Id);
                        adoptionRequest.User_Id             = db.Users.Find(sessionUser.Id).Id;
                        adoptionRequest.Pet                 = db.Pets.Find(id);
                        adoptionRequest.Pet_Id              = db.Pets.Find(id).Id;
                        adoptionRequest.Pet.Organization    = db.Pets.Find(adoptionRequest.Pet_Id).Organization;
                        adoptionRequest.Pet.Organization_Id = db.Pets.Find(adoptionRequest.Pet_Id).Organization.Id;

                        var ar = from b in db.AdoptionRequests.Where(x => x.Pet_Id == adoptionRequest.Pet.Id) select b;

                        foreach (AdoptionRequest item in ar)
                        {
                            if (item.User_Id == adoptionRequest.User.Id)
                            {
                                return(RedirectToAction("Index", "Error", new { message = "The adoption request for " + adoptionRequest.Pet.Name + " alredy exist for " + adoptionRequest.User.Username }));
                            }
                        }

                        if (ModelState.IsValid)
                        {
                            adoptionRequest.IsOpen = true;
                            db.AdoptionRequests.Add(adoptionRequest);
                            db.SaveChanges();
                            return(RedirectToAction("Index"));
                        }

                        return(RedirectToAction("Index", "Error", new { message = "The request didn't save" }));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Error", new { message = "Not autorized!" }));
                    }
                }
                else
                {
                    return(RedirectToAction("Index", "Error", new { message = "You have to login first.." }));
                }
            }
        }
예제 #6
0
        // GET: AdoptionRequests/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            User sessionUser = (User)System.Web.HttpContext.Current.Session["user"];

            if (sessionUser != null)
            {
                if (sessionUser.Id == db.Users.Find(sessionUser.Id).Id)
                {
                    AdoptionRequest adoptionRequest = db.AdoptionRequests.Include(adopReq => adopReq.Pet).Include(adopReq => adopReq.User).SingleOrDefault(ar => ar.Id == id);

                    if (sessionUser.IsAdmin || sessionUser.Id == adoptionRequest.User.Id)
                    {
                        if (adoptionRequest == null)
                        {
                            return(HttpNotFound());
                        }

                        ViewBag.IsAdmin = sessionUser.IsAdmin;
                        ViewBag.Pets    = new SelectList(db.Pets, "Id", "Name");

                        if (sessionUser.IsAdmin)
                        {
                            ViewBag.Users = new SelectList(db.Users, "Id", "Username");
                        }
                        else
                        {
                            ViewBag.Users = db.Users.Find(sessionUser.Id).Username;
                        }

                        return(View(adoptionRequest));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Error", new { message = "Not autorized!" }));
                    }
                }
                else
                {
                    return(RedirectToAction("Index", "Error", new { message = "Not autorized!" }));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Error", new { message = "You have to login first.." }));
            }
        }
예제 #7
0
        public ActionResult Edit([Bind(Include = "Id,IsOpen,Pet_Id,User_Id")] AdoptionRequest adoptionRequest)
        {
            adoptionRequest.Pet    = db.Pets.Find(adoptionRequest.Pet_Id);
            adoptionRequest.Pet_Id = db.Pets.Find(adoptionRequest.Pet_Id).Id;
            adoptionRequest.Pet.Organization_Id = db.Pets.Find(adoptionRequest.Pet_Id).Organization.Id;

            if (adoptionRequest.Pet.IsAdopted)
            {
                return(RedirectToAction("Index", "Error", new { message = "The pet is alredy adopted" }));
            }
            else
            {
                User sessionUser = (User)System.Web.HttpContext.Current.Session["user"];
                adoptionRequest.User    = db.Users.Find(adoptionRequest.User_Id);
                adoptionRequest.User_Id = db.Users.Find(adoptionRequest.User_Id).Id;

                var ar = from b in db.AdoptionRequests.Where(x => x.Pet_Id == adoptionRequest.Pet.Id) select b;

                foreach (AdoptionRequest item in ar)
                {
                    if (item.User_Id == adoptionRequest.User.Id)
                    {
                        return(RedirectToAction("Index", "Error", new { message = "The adoption request for " + adoptionRequest.Pet.Name + " alredy exist for " + adoptionRequest.User.Username }));
                    }
                }

                if (ModelState.IsValid)
                {
                    adoptionRequest.IsOpen          = true;
                    db.Entry(adoptionRequest).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                return(View(adoptionRequest));
            }

            if (ModelState.IsValid)
            {
                db.Entry(adoptionRequest).State      = EntityState.Modified;
                db.Entry(adoptionRequest.Pet).State  = EntityState.Modified;
                db.Entry(adoptionRequest.User).State = EntityState.Modified;

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(adoptionRequest));
        }
예제 #8
0
        private void btnAdoption_Click(object sender, EventArgs e)
        {
            foreach (Form frm in Application.OpenForms)
            {
                if (frm.GetType() == typeof(AdoptionRequest))
                {
                    frm.Activate();
                    frm.BringToFront();
                    return;
                }
            }

            AdoptionRequest adoptionRequest = new AdoptionRequest(userId);

            adoptionRequest.MdiParent   = this;
            adoptionRequest.WindowState = FormWindowState.Maximized;
            adoptionRequest.Show();
        }
예제 #9
0
        // GET: AdoptionRequests/Aprove/6
        public ActionResult Aprove(int id)
        {
            AdoptionRequest adoptionRequest = db.AdoptionRequests.Find(id);

            if (!adoptionRequest.Pet.IsAdopted)
            {
                User sessionUser = (User)System.Web.HttpContext.Current.Session["user"];

                if (sessionUser.IsAdmin || sessionUser.Id == adoptionRequest.User.Id)
                {
                    adoptionRequest.IsOpen        = false;
                    adoptionRequest.Pet.IsAdopted = true;

                    var ar = from b in db.AdoptionRequests select b;

                    ar = ar.Where(x => x.Pet_Id == adoptionRequest.Pet.Id);

                    foreach (AdoptionRequest item in ar)
                    {
                        if (item.User_Id != adoptionRequest.User.Id)
                        {
                            db.AdoptionRequests.Remove(item);
                        }
                    }

                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("Index", "Error", new { message = "You have to login first.." }));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Error", new { message = "The pet is alredy adopte" }));
            }
        }
예제 #10
0
        // GET: AdoptionRequests/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            User sessionUser = (User)System.Web.HttpContext.Current.Session["user"];

            if (sessionUser != null)
            {
                AdoptionRequest adoptionRequest = db.AdoptionRequests.Include(adopReq => adopReq.Pet).Include(adopReq => adopReq.User).SingleOrDefault(ar => ar.Id == id);
                if (adoptionRequest == null)
                {
                    return(HttpNotFound());
                }

                ViewBag.PetName = adoptionRequest.Pet.Name;
                return(View(adoptionRequest));
            }
            else
            {
                return(RedirectToAction("Index", "Error", new { message = "You have to login first.." }));
            }
        }
        public ActionResult AdoptRequest(int idPet, string cellphone, string whereWho, string reason)
        {
            var pet = _dbcontext.Pets
                      .Where(p => p.IdPet == idPet).FirstOrDefault();

            var claimsIdentity = (ClaimsIdentity)User.Identity;
            var userId         = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier).Value;

            if (pet != null)
            {
                if (userId != null)
                {
                    try
                    {
                        pet.IdStatusPet = 2;

                        _dbcontext.Pets.Update(pet);
                        _dbcontext.SaveChanges();

                        var adoptRequest = new AdoptionRequest()
                        {
                            CellphoneUser    = cellphone,
                            ReasonAdoption   = reason,
                            WhereWhoAdoption = whereWho,
                            IdUser           = userId,
                            IdPet            = idPet
                        };

                        _dbcontext.AdoptionRequests.Add(adoptRequest);
                        _dbcontext.SaveChanges();

                        //EXITO
                        Response.StatusCode = 200;
                        var mensaje = "Message sent. Please wait until we contact you.";

                        return(new JsonResult(mensaje));
                    }
                    catch
                    {
                        //ERROR
                        Response.StatusCode = 500;
                        var error = "Internal server error. Try again later.";

                        return(new JsonResult(error));
                    }
                }
                else
                {
                    //ERROR
                    Response.StatusCode = 404;
                    var error = "The user hasn't been found or doesn't exist.";

                    return(new JsonResult(error));
                }
            }
            else
            {
                //ERROR
                Response.StatusCode = 404;
                var error = "This pet hasn't been found or doesn't exist.";

                return(new JsonResult(error));
            }
        }
예제 #12
0
 public IHttpActionResult AdoptMouse(AdoptionRequest request, string userId)
 {
     _adoptionService.AdoptMouse(request.AnimalId, request.UserId);
     return(StatusCode(HttpStatusCode.Accepted));
 }