public MailingElementListItemViewModel(Translator translator, MailingElement mailingElement) { Id = mailingElement.Id.Value.ToString(); Owner = mailingElement.Owner.Value.Name.Value[translator.Language].EscapeHtml(); Name = mailingElement.Name.Value.EscapeHtml(); Type = mailingElement.Type.Value.Translate(translator).EscapeHtml(); PhraseDeleteConfirmationQuestion = translator.Get("MailingElement.List.Delete.Confirm.Question", "Delete mailing element confirmation question", "Do you really wish to delete mailing element {0}?", mailingElement.GetText(translator)).EscapeHtml(); }
public MailingElementEditViewModel(Translator translator, IDatabase db, Session session, MailingElement mailingElement) : this(translator, session) { Method = "edit"; Id = mailingElement.Id.ToString(); Owner = string.Empty; Name = mailingElement.Name.Value.EscapeHtml(); Type = ((int)mailingElement.Type.Value).ToString(); Types = new List <NamedIntViewModel>(); Types.Add(new NamedIntViewModel(translator, MailingElementType.Header, mailingElement.Type.Value == MailingElementType.Header)); Types.Add(new NamedIntViewModel(translator, MailingElementType.Footer, mailingElement.Type.Value == MailingElementType.Footer)); HtmlText = mailingElement.HtmlText.Value; HtmlEditorId = Guid.NewGuid().ToString(); Owners = new List <NamedIdViewModel>(db .Query <Feed>() .Where(o => session.HasAccess(o, PartAccess.Mailings, AccessRight.Write)) .Select(o => new NamedIdViewModel(translator, o, mailingElement.Owner.Value == o)) .OrderBy(o => o.Name)); }
public MailingElementEdit() { this.RequiresAuthentication(); Get["/mailingelement"] = parameters => { if (HasSystemWideAccess(PartAccess.Mailings, AccessRight.Read)) { return(View["View/mailingelement.sshtml", new MailingElementViewModel(Translator, CurrentSession)]); } return(AccessDenied()); }; Get["/mailingelement/list"] = parameters => { if (HasSystemWideAccess(PartAccess.Mailings, AccessRight.Read)) { return(View["View/mailingelementlist.sshtml", new MailingElementListViewModel(Translator, Database)]); } return(null); }; Get["/mailingelement/edit/{id}"] = parameters => { if (HasSystemWideAccess(PartAccess.Mailings, AccessRight.Write)) { string idString = parameters.id; var mailingElement = Database.Query <MailingElement>(idString); if (mailingElement != null) { return(View["View/mailingelementedit.sshtml", new MailingElementEditViewModel(Translator, Database, CurrentSession, mailingElement)]); } } return(null); }; Post["/mailingelement/edit/{id}"] = parameters => { var status = CreateStatus(); string idString = parameters.id; var model = JsonConvert.DeserializeObject <MailingElementEditViewModel>(ReadBody()); var mailingElement = Database.Query <MailingElement>(idString); if (status.ObjectNotNull(mailingElement)) { if (status.HasAccess(mailingElement.Owner.Value, PartAccess.Mailings, AccessRight.Write)) { status.AssignObjectIdString("Owner", mailingElement.Owner, model.Owner); status.AssignStringRequired("Name", mailingElement.Name, model.Name); status.AssignEnumIntString("Type", mailingElement.Type, model.Type); var worker = new HtmlWorker(model.HtmlText); mailingElement.HtmlText.Value = worker.CleanHtml; mailingElement.PlainText.Value = worker.PlainText; if (status.IsSuccess) { Database.Save(mailingElement); Notice("{0} changed mailing element {1}", CurrentSession.User.UserName.Value, mailingElement); } } } return(status.CreateJsonData()); }; Get["/mailingelement/add"] = parameters => { if (HasAnyFeedAccess(PartAccess.Mailings, AccessRight.Write)) { return(View["View/mailingelementedit.sshtml", new MailingElementEditViewModel(Translator, Database, CurrentSession)]); } return(AccessDenied()); }; Post["/mailingelement/add/new"] = parameters => { var model = JsonConvert.DeserializeObject <MailingElementEditViewModel>(ReadBody()); var status = CreateStatus(); var mailingElement = new MailingElement(Guid.NewGuid()); status.AssignObjectIdString("Owner", mailingElement.Owner, model.Owner); status.AssignStringRequired("Name", mailingElement.Name, model.Name); status.AssignEnumIntString("Type", mailingElement.Type, model.Type); var worker = new HtmlWorker(model.HtmlText); mailingElement.HtmlText.Value = worker.CleanHtml; mailingElement.PlainText.Value = worker.PlainText; if (status.HasAccess(mailingElement.Owner.Value, PartAccess.Mailings, AccessRight.Write)) { if (status.IsSuccess) { Database.Save(mailingElement); Notice("{0} added mailing element {1}", CurrentSession.User.UserName.Value, mailingElement); } } return(status.CreateJsonData()); }; Get["/mailingelement/delete/{id}"] = parameters => { var status = CreateStatus(); string idString = parameters.id; var mailingElement = Database.Query <MailingElement>(idString); if (status.ObjectNotNull(mailingElement)) { if (status.HasAccess(mailingElement.Owner.Value, PartAccess.Mailings, AccessRight.Write)) { mailingElement.Delete(Database); Notice("{0} deleted mailing element {1}", CurrentSession.User.UserName.Value, mailingElement); } } return(status.CreateJsonData()); }; }
public NamedIdViewModel(MailingElement element, bool selected) { Id = element.Id.ToString(); Name = element.Name.Value.EscapeHtml(); Selected = selected; }