public async Task <ActionResult> DeleteJoinedUserConfirmed(int id)
        {
            UserJoinedToTeam userJoinedToTeam = await db.UserJoinedToTeams.FindAsync(id);

            db.UserJoinedToTeams.Remove(userJoinedToTeam);
            await db.SaveChangesAsync();

            return(RedirectToAction("JoinedUsersList"));
        }
        public async Task <ActionResult> DeleteJoinedUser(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UserJoinedToTeam userJoinedToTeam = await db.UserJoinedToTeams.FindAsync(id);

            if (userJoinedToTeam == null)
            {
                return(HttpNotFound());
            }
            return(View(userJoinedToTeam));
        }
Example #3
0
        //[ValidateAntiForgeryToken]
        public async Task <ActionResult> Join(int?id)
        {
            var response = new AjaxResponse {
                Success = false
            };

            try
            {
                if (ModelState.IsValid)
                {
                    if (string.IsNullOrEmpty(Request.Form["TeamInterestArea"]))
                    {
                        response.Message = "Debe especificar al menos un área de interés";
                        return(Json(response, JsonRequestBehavior.AllowGet));
                    }

                    List <InterestArea>   interestAreas   = storeDB.InterestAreas.ToList();
                    List <InterestRegion> interestRegions = storeDB.InterestRegions.ToList();
                    JoinTeamViewModel     model           = GetJoinTeamPage(interestAreas, interestRegions);

                    if (model.TeamInterestArea.Contains("Mostrador") && string.IsNullOrEmpty(model.InterestRegion))
                    {
                        response.Message = "Debe especificar al menos una región de interés";
                        return(Json(response, JsonRequestBehavior.AllowGet));
                    }

                    var existe = await storeDB.UserJoinedToTeams.FirstOrDefaultAsync(x => x.Email == model.TeamEmail);

                    if (existe == null)
                    {
                        var interestAreaIds   = Request.Form["TeamInterestArea"].Split(',');
                        var interestRegionIds = Request.Form["InterestRegion"].Split(',');

                        var user = new UserJoinedToTeam
                        {
                            Names        = model.TeamNames,
                            Email        = model.TeamEmail,
                            PhoneNumber  = model.TeamPhoneNumber,
                            Lastnames    = model.TeamLastnames,
                            Address      = model.TeamAddress,
                            DateCreation = DateTime.Now,
                            InterestArea = model.TeamInterestArea
                        };

                        List <string> areaAddresses = interestAreas.Where(a => interestAreaIds.Contains(a.InterestAreaId.ToString()))
                                                      .SelectMany(a => a.MailCollection.Split(';'))
                                                      .Distinct()
                                                      .ToList();
                        List <string> interestAddresses = null;

                        if (model.TeamInterestArea.Contains("Mostrador"))
                        {
                            interestAddresses = interestRegions.Where(r => interestRegionIds.Contains(r.Id.ToString()))
                                                .SelectMany(r => r.MailCollection.Split(';'))
                                                .Distinct()
                                                .ToList();
                        }

                        bool mailSent = SendMail(areaAddresses, interestAddresses, model);
                        if (mailSent == false)
                        {
                            response.Message = "Ocurrió un error al enviar su solicitud";
                            return(Json(response, JsonRequestBehavior.AllowGet));
                        }

                        storeDB.UserJoinedToTeams.Add(user);
                        await storeDB.SaveChangesAsync();

                        response.Success = true;
                        response.Message = "Gracias por unirse a nuestro Equipo";
                        return(Json(response, JsonRequestBehavior.AllowGet));
                    }
                    response.Message = "Ya existe una persona registrada con esa dirección de correo electrónico";
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
                response.Message = "Lo sentimos, no se pudo realizar la operación. Ha ocurrido un error en el servidor.";
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                response.Message = "Lo sentimos, no se pudo realizar la operación. Ha ocurrido un error en el servidor.";
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
        }