public ActionResult SaveDocument(string projectCode, int projectId, int issueId, string documentId) { if (NoSettings()) { return(Redirect("~/configure")); } UserWidgetData <LucidChartUser> userData = GeminiContext.UserWidgetStore.Get <LucidChartUser>(CurrentUser.Entity.Id, Constants.AppId, Constants.ControlId); if (userData == null || userData.IsNew) { return(Authenticate(string.Empty, string.Empty, string.Format("apps/lucidchart/editdocument/{0}/{1}/{2}", projectCode, projectId, issueId))); } string name = new LucidChartsConsumer(UserContext.Url, userData.Value).GetDocumentDescription(documentId).Name; byte[] img = new LucidChartsConsumer(UserContext.Url, userData.Value).GetDocumentImage(documentId, 0, 500, false); byte[] thumb = new LucidChartsConsumer(UserContext.Url, userData.Value).GetDocumentImage(documentId, 0, 128, true); IssueWidgetData <List <LucidChartData> > data = GeminiContext.IssueWidgetStore.Get <List <LucidChartData> >(issueId, Constants.AppId, Constants.ControlId); if (data == null || data.IsNew) { data = new IssueWidgetData <List <LucidChartData> >(); data.IssueId = issueId; data.AppId = Constants.AppId; data.ControlId = Constants.ControlId; data.Value = new List <LucidChartData>(); } LucidChartData doc = data.Value.Find(d => string.Compare(d.DocumentId, documentId, true) == 0); if (doc == null) { data.Value.Add(new LucidChartData() { DocumentId = documentId, Image = img, ThumnailImage = thumb, DocumentName = name }); } else { doc.DocumentName = name; doc.Image = img; doc.ThumnailImage = thumb; } GeminiContext.IssueWidgetStore.Save <List <LucidChartData> >(data.IssueId, data.AppId, data.ControlId, data.Value); string redirectURL = Countersoft.Gemini.Infrastructure.Helpers.NavigationHelper.GetIssuePageUrl(projectId, projectCode, issueId, UserContext.Card.Id, UserContext.Url); return(Redirect(redirectURL)); }
public ActionResult Verify(string oauth_token, string oauth_verifier) { LucidChartUser user = new LucidChartsConsumer(UserContext.Url, null).Verify(oauth_token, oauth_verifier); if (user != null) { GeminiContext.UserWidgetStore.Save(CurrentUser.Entity.Id, Constants.AppId, Constants.ControlId, user); } string url = Request["callback"]; if (url.IsEmpty()) { return(Redirect("~/")); } return(Redirect(string.Concat(UserContext.Url, url))); }
public ActionResult ViewDocument(string projectCode, int projectId, int issueId, string documentId) { if (NoSettings()) { return(Redirect("~/configure")); } UserWidgetData <LucidChartUser> userData = GeminiContext.UserWidgetStore.Get <LucidChartUser>(CurrentUser.Entity.Id, Constants.AppId, Constants.ControlId); if (userData == null || userData.IsNew) { return(Authenticate(string.Empty, string.Empty, string.Format("apps/lucidchart/viewdocument/{0}/{1}/{2}/{3}", projectCode, projectId, issueId, documentId))); } HttpWebRequest request = new LucidChartsConsumer(UserContext.Url, userData.Value).EditDocument(documentId, projectCode, projectId, issueId); string queryString = request.Headers["Authorization"].Replace(",", "&").Replace("\"", "").Replace("OAuth ", ""); return(Redirect(string.Concat(request.RequestUri.ToString(), "&", queryString))); }