public ActionResult GetServices() { var allAnunciosList = new List<AN_Anuncios>(); List<AnunciosViewModel> viewModelAnuncios = new List<AnunciosViewModel>(); using (Entities model = new Entities()) { allAnunciosList = model.AN_Anuncios.AsParallel().OrderByDescending(c => c.AN_Fecha).Where(sts => sts.ST_Id == 1).ToList(); foreach (var item in allAnunciosList) { string username = item.UserProfile.Name; string statusDesc = item.ST_Estatus.ST_Descripcion; var categoria = item.SBS_SubCategoriaServicio.CD_CategoriaServicio.CD_Descripcion; var firstImage = string.Empty; if (item.AE_AnunciosExtras.FirstOrDefault() != null) { firstImage = item.AE_AnunciosExtras.FirstOrDefault().AN_ImagenUrl; } else { firstImage = item.UserProfile.Image == null ? "~/Images/No_Profile.jpg" : item.UserProfile.Image; } //item.AN_Fecha = Convert.ToDateTime(item.AN_Fecha.ToShortDateString()); var getRating = model.SEL_ValoracionAnuncios(item.AN_Id).FirstOrDefault(); string urlimg = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"); var formatted = firstImage.Replace("~", ""); if (formatted.StartsWith("/")) formatted = formatted.Remove(0, 1); firstImage = urlimg + formatted; var number = 0; item.SS_SolicitudServicio.AsParallel().ToList().ForEach((counter) => { number += counter.RW_Reviews.Count; }); viewModelAnuncios.Add(new AnunciosViewModel { Usuario = username, EstatusDescription = statusDesc, AnunciosInfo = item, CategoriaDescripcion = categoria, FirstImage = firstImage, Rating = getRating, Comments = number, }); } } if (viewModelAnuncios == null || viewModelAnuncios.Count == 0) { return HttpNotFound(); } var anuncios = viewModelAnuncios.SerializeToJson(); return Json(anuncios); }
public ActionResult ChangeStatus(int Solicitud, int Status) { Updating update = new Updating() { Message = "Proceso de Actualización Exitosa." }; using (var db = new Entities()) { var solicitud = db.SS_SolicitudServicio.Find(Solicitud); solicitud.ST_Id = Status; db.Entry(solicitud).State = EntityState.Modified; db.SaveChanges(); if (Status == 3) { SendEmailNotification(solicitud, true); } } return Json(update.SerializeToJson(), JsonRequestBehavior.AllowGet); }
public ActionResult GetInformationAnuncios(FormCollection form) { var allAnunciosList = new List<AN_Anuncios>(); var category = string.IsNullOrEmpty(form["Categoria"]) ? default(int) : int.Parse(form["Categoria"].ToString()); var subcategoria = string.IsNullOrEmpty(form["SubCategoria"]) ? default(int) : int.Parse(form["SubCategoria"].ToString()); var lugar = string.IsNullOrEmpty(form["Lugar"]) ? default(string) : form["Lugar"].ToString(); var descripcion = string.IsNullOrEmpty(form["Descripcion"]) ? default(string) : form["Descripcion"].ToString(); List<AnunciosViewModel> viewModelAnuncios = new List<AnunciosViewModel>(); using (Entities model = new Entities()) { allAnunciosList = db.Get_AdvanceSearch(category, subcategoria, descripcion, lugar).ToList(); foreach (var item in allAnunciosList) { string username = item.UserProfile.Name; string statusDesc = item.ST_Estatus.ST_Descripcion; var categoria = item.SBS_SubCategoriaServicio.CD_CategoriaServicio.CD_Descripcion; var firstImage = string.Empty; if (item.AE_AnunciosExtras.FirstOrDefault() != null) { firstImage = item.AE_AnunciosExtras.FirstOrDefault().AN_ImagenUrl; } else { firstImage = item.UserProfile.Image == null ? "~/Images/No_Profile.jpg" : item.UserProfile.Image; } var getRating = model.SEL_ValoracionAnuncios(item.AN_Id).FirstOrDefault(); string urlimg = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"); var formatted = firstImage.Replace("~", ""); if (formatted.StartsWith("/")) formatted = formatted.Remove(0, 1); firstImage = urlimg + formatted; List<RW_Reviews> rvList = new List<RW_Reviews>(); model.SS_SolicitudServicio.Where(c => c.AN_Id == item.AN_Id).AsParallel().ToList().ForEach( c => { c.RW_Reviews.AsParallel().ToList().ForEach(i => rvList.Add(i)); }); viewModelAnuncios.Add(new AnunciosViewModel { Usuario = username, EstatusDescription = statusDesc, AnunciosInfo = item, CategoriaDescripcion = categoria, FirstImage = firstImage, Rating = getRating, ReviewList = rvList }); } } if (viewModelAnuncios == null || viewModelAnuncios.Count == 0) { return Json(new { Error = "No se encontraron registros" }); } var anuncios = viewModelAnuncios.SerializeToJson(); return Json(anuncios); }
public ActionResult GetAnunciosByUser() { int UserId = UserId = WebSecurity.CurrentUserId; var allAnunciosList = new List<AN_Anuncios>(); List<AnunciosViewModel> viewModelAnuncios = new List<AnunciosViewModel>(); using (Entities model = new Entities()) { allAnunciosList = model.AN_Anuncios.OrderBy(c => c.AN_Fecha).Where(acc => acc.ST_Id == 1 && acc.UserId == UserId).ToList(); var categoriasList = new List<Categoria>(); db.CD_CategoriaServicio.ToList().ForEach(c => { var subCatList = new List<SubCategorias>(); c.SBS_SubCategoriaServicio.ToList().ForEach(sb => { subCatList.Add(new SubCategorias { SubCatId = sb.SBS_Id, SubCatDesc = sb.SBS_Descripcion }); }); categoriasList.Add(new Categoria { CatId = c.CD_Id, CatDesc = c.CD_Descripcion, SubCatCollection = subCatList }); }); ViewBag.Categories = categoriasList; foreach (var item in allAnunciosList) { string username = item.UserProfile.Name; string statusDesc = item.ST_Estatus.ST_Descripcion; var categoria = item.SBS_SubCategoriaServicio.CD_CategoriaServicio.CD_Descripcion; var firstImage = string.Empty; if (item.AE_AnunciosExtras.FirstOrDefault() != null) { firstImage = item.AE_AnunciosExtras.FirstOrDefault().AN_ImagenUrl; } var getRating = model.SEL_ValoracionAnuncios(item.AN_Id).FirstOrDefault(); string urlimg = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"); var formatted = firstImage.Replace("~", ""); if (formatted.StartsWith("/")) formatted = formatted.Remove(0, 1); firstImage = urlimg + formatted; viewModelAnuncios.Add(new AnunciosViewModel { Usuario = username, EstatusDescription = statusDesc, AnunciosInfo = item, CategoriaDescripcion = categoria, FirstImage = firstImage, Rating = getRating }); } } if (viewModelAnuncios == null || viewModelAnuncios.Count == 0) { return HttpNotFound(); } return View(viewModelAnuncios); }
private void SendEmailNotification(SS_SolicitudServicio solicitud, bool isReview) { string pXml = string.Empty; var ppEmailTemplate = new Notification(); var userName = WebSecurity.CurrentUserName; using (db = new Entities()) { var soli = db.SS_SolicitudServicio.Where(c => c.SS_Id == solicitud.SS_Id); ppEmailTemplate.CustomerName = soli.FirstOrDefault().UserProfile.Name; ppEmailTemplate.ProviderName = soli.FirstOrDefault().AN_Anuncios.UserProfile.Name; ppEmailTemplate.SolicitudId = soli.FirstOrDefault().SS_Id; ppEmailTemplate.AnuncioId = soli.FirstOrDefault().AN_Anuncios.AN_Id; ppEmailTemplate.EmailCliente = soli.FirstOrDefault().UserProfile.UserName; ppEmailTemplate.EmailProveedor = soli.FirstOrDefault().AN_Anuncios.UserProfile.UserName; string urlimg = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"); var firstImage = "~/Images/logo2-blue.png"; var formatted = firstImage.Replace("~", ""); if (formatted.StartsWith("/")) formatted = formatted.Remove(0, 1); firstImage = urlimg + formatted; ppEmailTemplate.Image = firstImage; string link = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/") + "Review/Create/" + solicitud.SS_Id; ppEmailTemplate.LinkReview = link; pXml = ppEmailTemplate.Serialize<Notification>(); string serverPath = string.Empty; serverPath = base.Server.MapPath("~"); string body = string.Empty; if (isReview) { body = pXml.ConvertXML(Path.Combine(serverPath, @"EmailTemplates\ServicioReview.xslt")); Extensions.ExtensionHelper.SendEmail(ppEmailTemplate.EmailCliente, "Informanos de como te fue en el servicio", body); var soliupdate = db.SS_SolicitudServicio.Find(solicitud.SS_Id); soliupdate.ST_Id = 4; db.Entry(soliupdate).State = EntityState.Modified; db.SaveChanges(); } else { body = pXml.ConvertXML(Path.Combine(serverPath, @"EmailTemplates\ServicioRequestClient.xslt")); Extensions.ExtensionHelper.SendEmail(ppEmailTemplate.EmailCliente, "Solicitud de Servicio", body); body = pXml.ConvertXML(Path.Combine(serverPath, @"EmailTemplates\ServicioRequestProved.xslt")); Extensions.ExtensionHelper.SendEmail(ppEmailTemplate.EmailProveedor, "Solicitud de Servicio", body); } } }
public ActionResult TakeService(FormCollection form) { if (form[0] != null) { int anuncioId = int.Parse(form[0]); using (var db = new Entities()) { var solicitud = db.SS_SolicitudServicio.Add(new SS_SolicitudServicio { AN_Id = anuncioId, ST_Id = 1, SS_Fecha = System.DateTime.Now, UserId = WebSecurity.CurrentUserId }); var solicitudcreada = db.SaveChanges<SS_SolicitudServicio>(solicitud); if (solicitudcreada != null) { SendEmailNotification(solicitudcreada, false); } } } return null; }
public ActionResult SolicitudRequest() { var mysol = new List<SolicitudViewModel>(); using (var db = new Entities()) { var solicitudes = db.SS_SolicitudServicio.Where(c => c.AN_Anuncios.UserId == WebSecurity.CurrentUserId); Func<int, string> x = value => { switch (value) { case 1: return "Activo"; case 2: return "Cancelado"; case 3: return "Realizado"; case 4: return "En espera de Review"; case 5: return "Completado"; case 6: return "Iniciar Tarea"; case 7: return "A revisión"; default: return ""; } }; solicitudes.ToList().ForEach((sol) => { mysol.Add(new SolicitudViewModel { Solicitante = sol.UserProfile.Name, EmailSolicitante = sol.UserProfile.UserName, FechaCreacion = sol.SS_Fecha, Solicitud = sol.SS_Id, Status = x.Invoke(sol.ST_Id), TelefonoSolicitante = "No Telefono", StatusId = sol.ST_Id }); }); } return View(mysol); }
public ActionResult Index() { ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; using (var db = new Entities()) { var ListCategorias = db.CD_CategoriaServicio.ToList(); var firstCategoria = ListCategorias.FirstOrDefault().CD_Id; var ListSubCategory = db.SBS_SubCategoriaServicio.Where(c => c.CD_Id == firstCategoria).ToList(); ViewBag.Categories = new SelectList(ListCategorias, "CD_Id", "CD_Descripcion"); ViewBag.SubCategories = new SelectList(ListSubCategory, "SBS_Id", "SBS_Descripcion"); } return View(); }
public ActionResult ForgotPassword(string Email) { //check user existance var user = Membership.GetUser(Email); if (user == null) { if (Email == string.Empty) TempData["Message"] = "No ha ingresado el correo electrónico."; else TempData["Message"] = "El correo electronico ingresado no corresponde a un usuario existente."; } else { //generate password token var token = WebSecurity.GeneratePasswordResetToken(Email); //create url with above token var resetLink = Url.Action("ResetPassword", "Account", new { un = Email, rt = token }, "http"); //get user emailid Entities db = new Entities(); var emailid = (from i in db.UserProfile where i.UserName == Email select i.UserName).FirstOrDefault(); //send mail string subject = "Restaurar su contraseña de Service Market"; string body = MensajeRestablecerPassword(resetLink, Email); //edit it try { SendEMail(emailid, subject, body); TempData["Message"] = "Mensaje enviado."; } catch (Exception ex) { TempData["Message"] = "Ha ocurrido un error enviando el mensaje." + ex.Message; } //only for testing TempData["Message"] = "Se ha enviado un correo electrónico en el cual podrá restaurar su contraseña."; } return View(); }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { string provider = null; string providerUserId = null; if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId)) { return RedirectToAction("Manage"); } if (ModelState.IsValid) { // Insert a new user into the database using (Entities db = new Entities()) { UserProfile user = db.UserProfile.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower()); // Check if user already exists if (user == null) { // Insert name into the profile table db.UserProfile.Add(new UserProfile { UserName = model.UserName, ST_Id = 1, MP_MemberShipId = 1, Name = model.UserName }); db.SaveChanges(); OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName); OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false); return RedirectToLocal(returnUrl, string.Empty); } else { ModelState.AddModelError("UserName", "Ya existe una cuenta con esta cuenta de correo. Por favor ingrese un correo diferente."); } } } ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName; ViewBag.ReturnUrl = returnUrl; return View(model); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { using (var db = new Entities()) { int solicitud = int.Parse(filterContext.ActionParameters.Values.FirstOrDefault().ToString()); if (db.RW_Reviews.Any(c => c.SS_Id == solicitud)) { filterContext.Result = new RedirectResult("~/Review/ReviewSubmitted"); return; } var soli = db.SS_SolicitudServicio.FirstOrDefault(c => c.SS_Id == solicitud && c.ST_Id == 4); if (soli == null) { filterContext.Result = new RedirectResult("~/Review/NoReviewAllowed"); return; } if (soli.UserId != WebSecurity.CurrentUserId) { filterContext.Result = new RedirectResult("~/Review/NoReviewAllowed"); return; } } }
public SimpleMembershipInitializer() { Database.SetInitializer<Entities>(null); try { using (var context = new Entities()) { if (!context.Database.Exists()) { // Create the SimpleMembership database without Entity Framework migration schema ((IObjectContextAdapter)context).ObjectContext.CreateDatabase(); } } if (!WebSecurity.Initialized) { WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); } } catch (Exception ex) { throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex); } }
public ActionResult GetCompanyInfo() { var Company = new COM_Compañia(); using (Entities model = new Entities()) { Company = model.COM_Compañia.FirstOrDefault(); } if (Company == null) { return HttpNotFound(); } return Json(Company.SerializeToJson()); }
// Delete file from the server private void DeleteFile(HttpContext context) { if (context.Request["id"] != null) { using (var db = new Entities()) { var extra = db.AE_AnunciosExtras.Find(int.Parse(context.Request["id"].ToString())); var currentPath = ExtraRoot + extra.AN_Id + @"\" + extra.AN_Nombre; if (File.Exists(currentPath)) { File.Delete(currentPath); } db.AE_AnunciosExtras.Remove(extra); db.SaveChanges(); } } else { var filePath = System.Web.HttpContext.Current.Server.MapPath(context.Request["f"]); if (File.Exists(filePath)) { File.Delete(filePath); } } }
private void SaveContent(List<FilesStatus> files) { using (var tran = new TransactionScope()) { using (var db = new Entities()) { files.ForEach(c => { var anun = new AE_AnunciosExtras(); anun.AN_Id = int.Parse(HttpContext.Current.Session["Anuncio"].ToString()); anun.AN_ImagenUrl = c.UrlPath; anun.AN_Nombre = Path.GetFileName(c.UrlPath); var entity =db.SaveChanges<AE_AnunciosExtras>(anun); c.IdResource = entity.AE_Id; }); } tran.Complete(); } }
/// <summary> /// /// </summary> /// <returns></returns> public ActionResult GetLastAnuncios() { var allAnunciosList = new List<AN_Anuncios>(); List<AnunciosViewModel> viewModelAnuncios = new List<AnunciosViewModel>(); using (Entities model = new Entities()) { allAnunciosList = model.AN_Anuncios.OrderByDescending(day => day.AN_Fecha).Where(acc => acc.ST_Id == 1).Take(3).ToList(); foreach (var item in allAnunciosList) { string username = item.UserProfile.Name; string statusDesc = item.ST_Estatus.ST_Descripcion; var categoria = item.SBS_SubCategoriaServicio.CD_CategoriaServicio.CD_Descripcion; var firstImage = string.Empty; if (item.AE_AnunciosExtras.FirstOrDefault() != null) { firstImage = item.AE_AnunciosExtras.FirstOrDefault().AN_ImagenUrl; } else { firstImage = item.UserProfile.Image == null ? "~/Images/No_Profile.jpg" : item.UserProfile.Image; } string urlimg = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"); var formatted = firstImage.Replace("~", ""); if (formatted.StartsWith("/")) formatted = formatted.Remove(0, 1); firstImage = urlimg + formatted; string descripcion = string.Empty; descripcion = item.AN_Descripcion.Substring(0, item.AN_Descripcion.Length < 112 ? item.AN_Descripcion.Length : 112); if (descripcion.LastIndexOf(' ') > 0) descripcion = descripcion.Substring(0, descripcion.LastIndexOf(' ')); descripcion += "..."; item.AN_Descripcion = descripcion; viewModelAnuncios.Add(new AnunciosViewModel { Usuario = username, EstatusDescription = statusDesc, AnunciosInfo = item, CategoriaDescripcion = categoria, FirstImage = firstImage }); } } if (viewModelAnuncios == null || viewModelAnuncios.Count == 0) { return HttpNotFound(); } return Json((viewModelAnuncios).SerializeToJson()); }
public ActionResult Index() { var allAnunciosList = new List<AN_Anuncios>(); List<AnunciosViewModel> viewModelAnuncios = new List<AnunciosViewModel>(); using (Entities model = new Entities()) { allAnunciosList = model.AN_Anuncios.OrderBy(c => c.AN_Fecha).ToList(); foreach (var item in allAnunciosList) { string username = item.UserProfile.Name; string statusDesc = item.ST_Estatus.ST_Descripcion; var categoria = item.SBS_SubCategoriaServicio.CD_CategoriaServicio.CD_Descripcion; var firstImage = string.Empty; if (item.AE_AnunciosExtras.FirstOrDefault() != null) { firstImage = item.AE_AnunciosExtras.FirstOrDefault().AN_ImagenUrl; } string urlimg = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"); var formatted = firstImage.Replace("~", ""); if (formatted.StartsWith("/")) formatted = formatted.Remove(0, 1); firstImage = urlimg + formatted; viewModelAnuncios.Add(new AnunciosViewModel { Usuario = username, EstatusDescription = statusDesc, AnunciosInfo = item, CategoriaDescripcion = categoria, FirstImage = firstImage }); } } if (viewModelAnuncios == null || viewModelAnuncios.Count == 0) { return HttpNotFound(); } return View(viewModelAnuncios); }
public ActionResult ResetPassword(string un, string rt) { Entities db = new Entities(); //TODO: Check the un and rt matching and then perform following //get userid of received username var userid = (from i in db.UserProfile where i.UserName == un select i.UserId).FirstOrDefault(); //check userid and token matches bool any = (from j in db.webpages_Membership where (j.UserId == userid) && (j.PasswordVerificationToken == rt) //&& (j.PasswordVerificationTokenExpirationDate < DateTime.Now) select j).Any(); if (any == true) { //generate random password string newpassword = GenerateRandomPassword(6); //reset password bool response = WebSecurity.ResetPassword(rt, newpassword); if (response == true) { //get user emailid to send password var emailid = (from i in db.UserProfile where i.UserName == un select i.UserName).FirstOrDefault(); //send email string subject = "Nueva Contraseña de Service Market"; string body = MensajeNuevoPassword(newpassword); //edit it try { SendEMail(emailid, subject, body); TempData["Message"] = "Correo enviado."; } catch (Exception ex) { TempData["Message"] = "Ha ocurrido un error al intentar enviar el correo." + ex.Message; } //display message TempData["Message"] = "Hemos atendido su solicitud de restauración de contraseña. Su nueva contraseña para Service Market es: " + newpassword + " De igual forma le hemos enviado un correo con su nueva contraseña."; } else { TempData["Message"] = "Hubo un error al reiniciar la contraseña, por favor vuelva a intentarlo más a tarde o comuníquese con nuestros agnetes de Service Market."; } } else { TempData["Message"] = "Hubo un error al reiniciar la contraseña, por favor vuelva a intentarlo más a tarde o comuníquese con nuestros agnetes de Service Market"; } return View("ResetPasswordComplete"); }