/// <summary> /// Generates a URL with an absolute path for the specified CRUD arguments /// </summary> /// <param name="urlHelper">The <see cref="IUrlHelper"/> to be use into the generation.</param> /// <param name="actionName">The name of the desired CRUD action </param> /// <param name="crudType">The <see cref="ICrudTypeRoutable"/> with the CRUD argument to be used</param> /// <param name="id">The id of the entity related to the url</param> /// <param name="message">The message to be displayed to the user</param> /// <returns>The generated URL.</returns> internal static string RouteUrl <TKey>( this IUrlHelper urlHelper, string actionName, ICrudTypeRoutable crudType, TKey id, IndexMessages message = IndexMessages.None ) => GetRouteUrl(urlHelper, actionName, crudType, id, message: message);
public virtual async Task <IActionResult> Index( ICrudType entitySettings, string id, IndexMessages message = IndexMessages.None ) { var model = Settings as IIndexModel; model.SetData(DbContext); model.Message = new ViewMessage() { Text = message != IndexMessages.None ? _localizer[$"GenericCrud.Index.{message.ToString()}Message"] : string.Empty, CssClass = message == IndexMessages.EditSuccess ? "alert-success" : message == IndexMessages.CreateSuccess ? "alert-success" : message == IndexMessages.DeleteSuccess ? "alert-success" : "alert-info" }; if (!string.IsNullOrWhiteSpace(id)) { model.SetId(id); } model.CurrentProcess = CrudProcesses.Index; if (_requiredJson) { return(new IndexModel(model).ToJson()); } else if (_requiredXml) { return(new IndexModel(model).ToXml()); } else { return(Content( await _renderingService.RenderToStringAsync(nameof(Index), model, ViewData), "text/html" )); } }
public IActionResult Index() { try { var model = new IndexMessages() { UserList = _dbcontext.User.Include(s => s.ToMessages).Include(s => s.FromMessages).Where(c => c.ToMessages.Where(s => s.FromUserId == UserId).Count() != 0 || c.FromMessages.Where(s => s.ToUserId == UserId).Count() != 0).ToList(), PPPath = _dbcontext.User.Single(c => c.Id == UserId).PhotoPath }; return(View(model)); } catch (Exception e) { return(null); } }
/// <summary> /// Generate the correctly response using the specified settings and arguments /// </summary> /// <param name="id">The id of the affected entity</param> /// <param name="message">The message to be sent into the response</param> /// <returns>The generated action result</returns> private IActionResult SendSuccessResponse(string id, IndexMessages message = IndexMessages.None) { var redirectUrl = Url.RouteUrl( GenericCrud.Settings.Route.RedirectIndexActionNamePattern, CrudType as ICrudTypeRoutable, id, message ); if (Settings.UseModals) { return(Json(new JsonResponse { Success = true, RedirectUrl = redirectUrl })); } // else if (string.IsNullOrWhiteSpace(id)) // return RedirectToAction(nameof(Index), new { message = message }); else { return(Redirect(redirectUrl)); } }
/// <summary> /// Generates a URL with an absolute path for the specified CRUD arguments /// </summary> /// <param name="urlHelper">The <see cref="IUrlHelper"/> to be use into the generation.</param> /// <param name="actionName">The name of the desired CRUD action </param> /// <param name="crudType">The <see cref="ICrudTypeRoutable"/> with the CRUD argument to be used</param> /// <param name="fileName">The name of the script to be used for form the url</param> /// <param name="id">The id of the entity related to the url</param> /// <param name="message">The message to be displayed to the user</param> /// <returns>The generated URL.</returns> private static string GetRouteUrl( this IUrlHelper urlHelper, string actionName, ICrudTypeRoutable crudType, object id = null, string fileName = null, IndexMessages message = IndexMessages.None ) { var route = GetRoute(actionName, crudType, throwIfNoFoundRoute: false); var values = new RouteValueDictionary(); values.Add(nameof(RouteDefaultValues.Controller), route.DefaultValues.Controller); values.Add(nameof(RouteDefaultValues.Action), route.DefaultValues.Action); values.Add(nameof(RouteDefaultValues.ModelType), route.DefaultValues.ModelType); if (id != null) { values.Add(nameof(id), id); } if (!string.IsNullOrWhiteSpace(fileName)) { values.Add(nameof(fileName), fileName); } if (message != IndexMessages.None) { values.Add(nameof(message), message); } var url = urlHelper.RouteUrl(route?.Name ?? actionName, values); if (string.IsNullOrWhiteSpace(url)) { url = route.Pattern; if (id != null) { var str = id.ToString(); if (string.IsNullOrWhiteSpace(str)) { url = url.Replace("/{id}", str); } else { url = url.Replace("{id}", str); } } if (!string.IsNullOrWhiteSpace(fileName)) { url = url.Replace("{filename}", fileName); } if (message != IndexMessages.None) { url = url.Replace("{message}", message.ToString()); } if (!url.StartsWith("/")) { url = $"/{url}"; } } return(url); }