protected void Page_Load(object sender, EventArgs e) { Utility.RegisterTypeForAjax(this.GetType()); _manageItemPopup.Options.IsPopup = true; var query = "history/category"; switch (CurrentTypeValue) { case ListType.ContactStatus: query = "contact/type"; break; case ListType.HistoryCategory: query = "history/category"; break; case ListType.TaskCategory: query = "task/category"; break; } var apiServer = new Api.ApiServer(); var data = apiServer.GetApiResponse(String.Format("api/1.0/crm/{0}.json", query), "GET"); Page.JsonPublisher(data, "itemList"); }
public static bool CanCreateProjects() { try { var apiUrl = String.Format("{0}project/securityinfo.json", SetupInfo.WebApiBaseUrl); var cacheKey = String.Format("{0}-{1}", ASC.Core.SecurityContext.CurrentAccount.ID, apiUrl); bool canCreateProject; if (HttpRuntime.Cache[cacheKey] != null) return Convert.ToBoolean(HttpRuntime.Cache[cacheKey]); var apiServer = new Api.ApiServer(); var responseApi = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(apiServer.GetApiResponse(apiUrl, "GET"))))["response"]; if (responseApi.HasValues) canCreateProject = Convert.ToBoolean(responseApi["canCreateProject"].Value<String>()); else canCreateProject = false; HttpRuntime.Cache.Insert(cacheKey, canCreateProject, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5)); return canCreateProject; } catch { return false; } }
private void GetApiData() { if (RequestContext.IsInConcreteProject()) return; var apiServer = new Api.ApiServer(); var projects = apiServer.GetApiResponse(string.Format("api/1.0/project/filter.json?status=open&sortBy=title&sortOrder=ascending&fields={0}", "id,title"), "GET"); JsonPublisher(projects, "projects"); }
protected void Page_Load(object sender, EventArgs e) { Utility.RegisterTypeForAjax(this.GetType()); _manageDealMilestonePopup.Options.IsPopup = true; var apiServer = new Api.ApiServer(); var data = apiServer.GetApiResponse("api/1.0/crm/opportunity/stage.json", "GET"); Page.JsonPublisher(data, "dealMilestoneList"); }
public void UpdateMailAggregator(IEnumerable<string> emails, IEnumerable<Guid> userIds) { var apiServer = new Api.ApiServer(); var body = GetPostBody(emails, userIds); apiServer.GetApiResponse( String.Format("{0}mail/messages/update_crm.json", SetupInfo.WebApiBaseUrl), "POST", body); }
private void GetApiData() { var apiServer = new Api.ApiServer(); const string fields = "id,title"; if (!RequestContext.IsInConcreteProject()) { var tags = apiServer.GetApiResponse(string.Format("api/1.0/project/tag.json"), "GET"); Page.JsonPublisher(tags, "tags"); var projects = apiServer.GetApiResponse(ProjectSecurity.IsAdministrator(CurrentUserId) ? string.Format("api/1.0/project/filter.json?status=open&sortBy=title&sortOrder=ascending&fields={0}", fields) : string.Format("api/1.0/project/filter.json?participant={0}&status=open&sortBy=title&sortOrder=ascending&fields={1}", CurrentUserId, fields), "GET"); Page.JsonPublisher(projects, "projects"); } }
public static bool CanCreateProjects() { try { var apiUrl = String.Format("{0}project/securityinfo.json", SetupInfo.WebApiBaseUrl); var cacheKey = String.Format("{0}-{1}", ASC.Core.SecurityContext.CurrentAccount.ID, apiUrl); bool canCreateProject; if (HttpRuntime.Cache[cacheKey] != null) { return(Convert.ToBoolean(HttpRuntime.Cache[cacheKey])); } var apiServer = new Api.ApiServer(); var responseApi = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(apiServer.GetApiResponse(apiUrl, "GET"))))["response"]; if (responseApi.HasValues) { canCreateProject = Convert.ToBoolean(responseApi["canCreateProject"].Value <String>()); } else { canCreateProject = false; } HttpRuntime.Cache.Insert(cacheKey, canCreateProject, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5)); return(canCreateProject); } catch { return(false); } }
private void InitForumsData() { IsForumsAvailable = true; var currentPath = HttpContext.Current.Request.Path; if (currentPath.IndexOf("Modules/Forum/Posts.aspx", StringComparison.OrdinalIgnoreCase) > 0) { InAParticularTopic = true; MakeCreateNewTopic = true; } var apiServer = new Api.ApiServer(); var apiResponse = apiServer.GetApiResponse(String.Format("{0}community/forum/count.json", SetupInfo.WebApiBaseUrl), "GET"); var obj = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(apiResponse))); var count = 0; if (Int32.TryParse(obj["response"].ToString(), out count)) { ForumsHasThreadCategories = count > 0; } if (InAParticularTopic && TopicID > 0) { apiServer = new Api.ApiServer(); apiResponse = apiServer.GetApiResponse(String.Format("{0}community/forum/topic/{1}.json", SetupInfo.WebApiBaseUrl, TopicID), "GET"); obj = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(apiResponse))); if (obj["response"] != null) { obj = JObject.Parse(obj["response"].ToString()); var status = 0; if (Int32.TryParse(obj["status"].ToString(), out status)) { MakeCreateNewTopic = status != 1 && status != 3; } } } }
protected void GetDataFromCookie() { //init data for first request var filterObj = GetFilterObjectFromCookie(); var filterNotEmpty = false; if (!String.IsNullOrEmpty(filterObj.FilterValue) || filterObj.CategoryID != 0 || filterObj.FromDate != DateTime.MinValue || filterObj.ToDate != DateTime.MinValue || filterObj.IsClosed != null || filterObj.ResponsibleID != Guid.Empty) { filterNotEmpty = true; } var queryString = String.Format("startIndex={0}&count={1}", filterObj.StartIndex, filterObj.Count); queryString += String.Format("&sortBy={0}", filterObj.SortBy); queryString += String.Format("&sortOrder={0}", filterObj.SortOrder); queryString += !String.IsNullOrEmpty(filterObj.FilterValue) ? String.Format("&filterValue={0}", filterObj.FilterValue) : ""; queryString += filterObj.ResponsibleID != Guid.Empty ? String.Format("&responsibleID={0}", filterObj.ResponsibleID) : ""; queryString += filterObj.FromDate != DateTime.MinValue ? String.Format("&fromDate={0}", DateToStringApi(filterObj.FromDate)) : ""; queryString += filterObj.ToDate != DateTime.MinValue ? String.Format("&toDate={0}", DateToStringApi(filterObj.ToDate)) : ""; queryString += filterObj.CategoryID != 0 ? String.Format("&categoryID={0}", filterObj.CategoryID) : ""; queryString += filterObj.IsClosed != null?String.Format("&isClosed={0}", filterObj.IsClosed.ToString().ToLower()) : ""; var apiServer = new Api.ApiServer(); var tasksForFirstRequest = apiServer.GetApiResponse( String.Format("api/1.0/crm/task/filter.json?{0}", queryString), "GET"); var tasksRequest = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(tasksForFirstRequest))); NoTasks = !filterNotEmpty && tasksRequest["count"].ToString() == "0"; Page.JsonPublisher(tasksForFirstRequest, "tasksForFirstRequest"); }
public static void DataListItemView(BasePage page, ListType currentTypeValue) { var query = "history/category"; switch (currentTypeValue) { case ListType.ContactStatus: query = "contact/status"; break; case ListType.ContactType: query = "contact/type"; break; case ListType.HistoryCategory: query = "history/category"; break; case ListType.TaskCategory: query = "task/category"; break; } var apiServer = new Api.ApiServer(); var data = apiServer.GetApiResponse(String.Format("{0}crm/{1}.json", SetupInfo.WebApiBaseUrl, query), "GET"); page.JsonPublisher(data, "itemList"); }
public RelationshipEvent CreateItem(RelationshipEvent item) { CRMSecurity.DemandCreateOrUpdate(item); var htmlBody = String.Empty; if (item.CreateOn == DateTime.MinValue) item.CreateOn = TenantUtil.DateTimeNow(); item.CreateBy = ASC.Core.SecurityContext.CurrentAccount.ID; item.LastModifedBy = ASC.Core.SecurityContext.CurrentAccount.ID; if (item.CategoryID == (int)HistoryCategorySystem.MailMessage) { var jsonObj = JObject.Parse(item.Content); var messageId = jsonObj.Value<Int32>("message_id"); var apiServer = new Api.ApiServer(); var msg = apiServer.GetApiResponse( String.Format("{0}mail/messages/{1}.json?id={1}&unblocked=true&is_need_to_sanitize_html=true", SetupInfo.WebApiBaseUrl, messageId), "GET"); if (msg == null) throw new ArgumentException(); var msgResponseWrapper = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(msg))); var msgRequestObj = msgResponseWrapper.Value<JObject>("response"); string messageUrl; htmlBody = msgRequestObj.Value<String>("htmlBody"); using (var fileStream = new MemoryStream(Encoding.UTF8.GetBytes(htmlBody))) { var filePath = String.Format("folder_{0}/message_{1}.html", (messageId/1000 + 1)*1000, messageId); Global.GetStore().Save("mail_messages",filePath,fileStream); messageUrl = String.Format("{0}HttpHandlers/filehandler.ashx?action=mailmessage&message_id={1}", PathProvider.BaseAbsolutePath, messageId).ToLower(); } var msg_date_created = msgRequestObj.Value<String>("date"); item.Content = JsonConvert.SerializeObject(new { @from = msgRequestObj.Value<String>("from"), to = msgRequestObj.Value<String>("to"), cc = msgRequestObj.Value<String>("cc"), bcc = msgRequestObj.Value<String>("bcc"), subject = msgRequestObj.Value<String>("subject"), important = msgRequestObj.Value<Boolean>("important"), chain_id = msgRequestObj.Value<String>("chainId"), is_sended = msgRequestObj.Value<Int32>("folder") != 1, date_created = msg_date_created, introduction = msgRequestObj.Value<String>("introduction"), message_id = msgRequestObj.Value<Int32>("id"), message_url = messageUrl }); item.CreateOn = DateTime.Parse(msg_date_created, CultureInfo.InvariantCulture); } using (var db = GetDb()) { item.ID = db.ExecuteScalar<int>( Insert("crm_relationship_event") .InColumnValue("id", 0) .InColumnValue("contact_id", item.ContactID) .InColumnValue("content", item.Content) .InColumnValue("create_on", TenantUtil.DateTimeToUtc(item.CreateOn)) .InColumnValue("create_by", item.CreateBy) .InColumnValue("entity_type", (int)item.EntityType) .InColumnValue("entity_id", item.EntityID) .InColumnValue("category_id", item.CategoryID) .InColumnValue("last_modifed_on", DateTime.UtcNow) .InColumnValue("last_modifed_by", item.LastModifedBy) .InColumnValue("have_files", false) .Identity(1, 0, true)); if (item.CreateOn.Kind == DateTimeKind.Utc) item.CreateOn = TenantUtil.DateTimeFromUtc(item.CreateOn); return item; } }
private void RegisterClientScript(EntityType entityType) { var apiServer = new Api.ApiServer(); var templateConatainerList = apiServer.GetApiResponse( String.Format("{0}crm/{1}/tasktemplatecontainer.json", SetupInfo.WebApiBaseUrl, entityType.ToString().ToLower()), "GET"); Page.JsonPublisher(templateConatainerList, "templateConatainerList"); }
private void GetApiData() { var apiServer = new Api.ApiServer(); if (RequestContext.IsInConcreteProject()) { var projectParticipants = apiServer.GetApiResponse(string.Format("api/1.0/project/{0}/team.json?fields={1}", RequestContext.GetCurrentProjectId(), "id,displayName"), "GET"); JsonPublisher(projectParticipants, "projectParticipants"); return; } var tags = apiServer.GetApiResponse(string.Format("api/1.0/project/tag.json"), "GET"); JsonPublisher(tags, "tags"); var projects = apiServer.GetApiResponse(ProjectSecurity.IsAdministrator(CurrentUserId) ? string.Format("api/1.0/project/filter.json?status=open&sortBy=title&sortOrder=ascending&fields={0}", "id,title") : string.Format("api/1.0/project/filter.json?status=open&sortBy=title&sortOrder=ascending&participant={0}&fields={1}", CurrentUserId, "id,title,responsible,status"), "GET"); JsonPublisher(projects, "projects"); }
private void GetDataFromCookie() { //init data for first request var filterObj = GetFilterObjectFromCookie(); var filterNotEmpty = false; if (filterObj.ContactID != 0 || !String.IsNullOrEmpty(filterObj.FilterValue) || filterObj.FromDate != DateTime.MinValue || filterObj.ToDate != DateTime.MinValue || filterObj.OpportunityStagesID != 0 || filterObj.ResponsibleID != Guid.Empty || filterObj.StageType != null || filterObj.Tags != null && filterObj.Tags.Count != 0) { filterNotEmpty = true; } var queryString = String.Format("startIndex={0}&count={1}", filterObj.StartIndex, filterObj.Count); queryString += String.Format("&sortBy={0}", filterObj.SortBy); queryString += String.Format("&sortOrder={0}", filterObj.SortOrder); queryString += !String.IsNullOrEmpty(filterObj.FilterValue) ? String.Format("&filterValue={0}", filterObj.FilterValue) : ""; queryString += filterObj.ResponsibleID != Guid.Empty ? String.Format("&responsibleID={0}", filterObj.ResponsibleID) : ""; queryString += !String.IsNullOrEmpty(filterObj.StageType) ? String.Format("&stageType={0}", filterObj.StageType) : ""; queryString += filterObj.OpportunityStagesID != 0 ? String.Format("&opportunityStagesID={0}", filterObj.OpportunityStagesID) : ""; queryString += filterObj.FromDate != DateTime.MinValue && filterObj.ToDate != DateTime.MinValue ? String.Format("&fromDate={0}&toDate={1}", DateToStringApi(filterObj.FromDate), DateToStringApi(filterObj.ToDate)) : ""; queryString += filterObj.ContactID != 0 && filterObj.ContactAlsoIsParticipant != null ? String.Format("&contactID={0}&contactAlsoIsParticipant={1}", filterObj.ContactID, filterObj.ContactAlsoIsParticipant) : ""; if (filterObj.Tags != null) { queryString = filterObj.Tags.Aggregate(queryString, (current, tag) => current + String.Format("&tags[]={0}", tag)); } var apiServer = new Api.ApiServer(); var opportunitiesForFirstRequest = apiServer.GetApiResponse( String.Format("api/1.0/crm/opportunity/filter.json?{0}", queryString), "GET"); var opportunitiesRequest = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(opportunitiesForFirstRequest))); Page.JsonPublisher(opportunitiesForFirstRequest, "opportunitiesForFirstRequest"); NoDeals = !filterNotEmpty && opportunitiesRequest["count"].ToString() == "0"; //init Page Navigator _phPagerContent.Controls.Add(new PageNavigator { ID = "dealPageNavigator", CurrentPageNumber = filterObj.CurrentPageNumber, VisibleOnePage = false, EntryCount = 0, VisiblePageCount = Global.VisiblePageCount, EntryCountOnPage = filterObj.Count, }); }
public static void DataInvoicesDetailsView(BasePage page, Invoice targetInvoice) { if(targetInvoice == null) return; var script = String.Format(@"var invoiceData = '{0}';", Global.EncodeTo64(targetInvoice.JsonData)); var apiServer = new Api.ApiServer(); var apiUrl = String.Format("{0}crm/invoice/{1}.json",SetupInfo.WebApiBaseUrl, targetInvoice.ID); var invoice = apiServer.GetApiResponse(apiUrl, "GET"); page.RegisterInlineScript(script, onReady: false); page.JsonPublisher(invoice, "invoice"); }
protected override void PageLoad() { AjaxPro.Utility.RegisterTypeForAjax(typeof(TaskDescriptionView), Page); ((IStudioMaster)Master).DisabledSidePanel = true; Project = RequestContext.GetCurrentProject(false); if (RequestContext.IsInConcreteProject() && Project == null) { Response.Redirect("tasks.aspx", true); } InitBreadCrumbs(); int taskID; if (Int32.TryParse(UrlParameters.EntityID, out taskID)) { if (Project == null) { return; } var apiServer = new Api.ApiServer(); var task = apiServer.GetApiResponse(String.Format("api/1.0/project/task/{0}.json", taskID), "GET"); JsonPublisher(task, "taskDescription"); var jTask = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(task))); if (jTask["count"].ToObject <int>() > 0) { var taskDescriptionView = (TaskDescriptionView)LoadControl(PathProvider.GetControlVirtualPath("TaskDescriptionView.ascx")); var taskDescription = new Task { ID = jTask["response"]["id"].ToObject <int>(), Title = jTask["response"]["title"].ToString(), Status = jTask["response"]["status"].ToObject <TaskStatus>(), Project = Project }; taskDescriptionView.Task = taskDescription; taskDescriptionView.CanEditTask = (bool)jTask["response"]["canEdit"]; taskDescriptionView.CanDeleteTask = (int)jTask["response"]["canWork"] == 3; _content.Controls.Add(taskDescriptionView); Master.BreadCrumbs.Add(new BreadCrumb()); } else { TaskNotFoundControlView(Project.ID); Master.BreadCrumbs.Clear(); } } else { var advansedFilter = new Studio.Controls.Common.AdvansedFilter { BlockID = "AdvansedFilter" }; _filter.Controls.Add(advansedFilter); var taskList = (TaskList)LoadControl(PathProvider.GetControlVirtualPath("TaskList.ascx")); _content.Controls.Add(taskList); var emptyScreenControlFilter = new Studio.Controls.Common.EmptyScreenControl { ImgSrc = WebImageSupplier.GetAbsoluteWebPath("empty-filter.png", ProductEntryPoint.ID), Header = TaskResource.NoTasks, Describe = TaskResource.DescrEmptyListTaskFilter, ButtonHTML = String.Format("<span class='baseLinkAction clearFilterButton'>{0}</span>", ProjectsFilterResource.ClearFilter) }; _content.Controls.Add(emptyScreenControlFilter); var emptyScreenControl = new Studio.Controls.Common.EmptyScreenControl { ImgSrc = WebImageSupplier.GetAbsoluteWebPath("empty_screen_tasks.png", ProductEntryPoint.ID), Header = TaskResource.NoTasksCreated, Describe = String.Format(TaskResource.TasksHelpTheManage) }; if (CanCreateTask()) { emptyScreenControl.ButtonHTML = String.Format("<span class='baseLinkAction addFirstElement'>{0}</span>", TaskResource.AddFirstTask); } _content.Controls.Add(emptyScreenControl); } GetApiData(); Title = HeaderStringHelper.GetPageTitle(TaskResource.Tasks, Master.BreadCrumbs); }
public static void DataInvoicesActionView(BasePage page, Invoice targetInvoice) { var daoFactory = page.DaoFactory; var invoiceItems = daoFactory.InvoiceItemDao.GetAll(); var invoiceItemsJson = JsonConvert.SerializeObject(invoiceItems.ConvertAll(item => new { id = item.ID, title = item.Title, stockKeepingUnit = item.StockKeepingUnit, description = item.Description, price = item.Price, quantity = item.Quantity, stockQuantity = item.StockQuantity, trackInventory = item.TrackInventory, invoiceTax1ID = item.InvoiceTax1ID, invoiceTax2ID = item.InvoiceTax2ID })); var invoiceTaxes = daoFactory.InvoiceTaxDao.GetAll(); var invoiceTaxesJson = JsonConvert.SerializeObject(invoiceTaxes.ConvertAll(item => new { id = item.ID, name = item.Name, rate = item.Rate, description = item.Description })); var invoiceSettings = Global.TenantSettings.InvoiceSetting ?? InvoiceSetting.DefaultSettings; var invoiceSettingsJson = JsonConvert.SerializeObject(new { autogenerated = invoiceSettings.Autogenerated, prefix = invoiceSettings.Prefix, number = invoiceSettings.Number, terms = invoiceSettings.Terms }); var presetContactsJson = string.Empty; var presetContactID = UrlParameters.ContactID; if (targetInvoice == null && presetContactID != 0) { var targetContact = daoFactory.ContactDao.GetByID(presetContactID); if (targetContact != null) { presetContactsJson = JsonConvert.SerializeObject(new { id = targetContact.ID, displayName = targetContact.GetTitle().HtmlEncode().ReplaceSingleQuote(), smallFotoUrl = ContactPhotoManager.GetSmallSizePhoto(targetContact.ID, targetContact is Company), currencyAbbreviation = targetContact.Currency }); } } var currencyRates = daoFactory.CurrencyRateDao.GetAll(); var currencyRatesJson = JsonConvert.SerializeObject(currencyRates.ConvertAll(item => new { id = item.ID, fromCurrency = item.FromCurrency, toCurrency = item.ToCurrency, rate = item.Rate })); var apiServer = new Api.ApiServer(); const string apiUrlFormat = "{0}crm/contact/{1}/data.json"; var contactInfoData = string.Empty; var consigneeInfoData = string.Empty; if (targetInvoice != null) { if (targetInvoice.ContactID > 0) { contactInfoData = apiServer.GetApiResponse(String.Format(apiUrlFormat, SetupInfo.WebApiBaseUrl, targetInvoice.ContactID), "GET"); } if (targetInvoice.ConsigneeID > 0) { consigneeInfoData = apiServer.GetApiResponse(String.Format(apiUrlFormat, SetupInfo.WebApiBaseUrl, targetInvoice.ConsigneeID), "GET"); } } else if (presetContactID != 0) { contactInfoData = apiServer.GetApiResponse(String.Format(apiUrlFormat, SetupInfo.WebApiBaseUrl, presetContactID), "GET"); } var apiUrl = String.Format("{0}crm/invoice/{1}.json", SetupInfo.WebApiBaseUrl, targetInvoice != null ? targetInvoice.ID.ToString(CultureInfo.InvariantCulture) : "sample"); var invoiceData = apiServer.GetApiResponse(apiUrl, "GET"); var script = String.Format(@" var invoiceItems = '{0}'; var invoiceTaxes = '{1}'; var invoiceSettings = '{2}'; var invoicePresetContact = '{3}'; var currencyRates = '{4}'; var invoiceJsonData = '{5}';", Global.EncodeTo64(invoiceItemsJson), Global.EncodeTo64(invoiceTaxesJson), Global.EncodeTo64(invoiceSettingsJson), Global.EncodeTo64(presetContactsJson), Global.EncodeTo64(currencyRatesJson), targetInvoice != null ? Global.EncodeTo64(targetInvoice.JsonData) : "" ); page.RegisterInlineScript(script, onReady: false); page.JsonPublisher(contactInfoData, "invoiceContactInfo"); page.JsonPublisher(consigneeInfoData, "invoiceConsigneeInfo"); page.JsonPublisher(invoiceData, "invoice"); }
private void GetApiData() { var apiServer = new Api.ApiServer(); var currentUserId = SecurityContext.CurrentAccount.ID; if (RequestContext.IsInConcreteProject()) { var projectParticipants = apiServer.GetApiResponse(string.Format("api/1.0/project/{0}/team.json?fields={1}", RequestContext.GetCurrentProjectId(), "id,displayName"), "GET"); JsonPublisher(projectParticipants, "projectTeam"); var milestones = apiServer.GetApiResponse(string.Format("api/1.0/project/milestone/filter.json?sortBy=deadline&sortOrder=descending&status=open&projectId={0}&fields={1}", RequestContext.GetCurrentProjectId(), "id,title,deadline"), "GET"); JsonPublisher(milestones, "milestones"); } else { var milestones = apiServer.GetApiResponse(ProjectSecurity.IsAdministrator(currentUserId) ? string.Format("api/1.0/project/milestone/filter.json?sortBy=deadline&sortOrder=descending&status=open&fields={0}", "id,title,deadline") : string.Format("api/1.0/project/milestone/filter.json?sortBy=deadline&sortOrder=descending&status=open&participant={0}&fields={1}", currentUserId, "id,title,deadline"), "GET"); JsonPublisher(milestones, "milestones"); var tags = apiServer.GetApiResponse(string.Format("api/1.0/project/tag.json"), "GET"); JsonPublisher(tags, "tags"); var projects = apiServer.GetApiResponse(ProjectSecurity.IsAdministrator(currentUserId) ? string.Format("api/1.0/project/filter.json?status=open&sortBy=title&sortOrder=ascending&fields={0}", "id,title,security,isPrivate") : string.Format("api/1.0/project/filter.json?participant={0}&status=open&sortBy=title&sortOrder=ascending&fields={1}", currentUserId, "id,title,security,isPrivate"), "GET"); JsonPublisher(projects, "projects"); } }
private void GetDataFromCookie() { //init data for first request var filterObj = GetFilterObjectFromCookie(); var queryString = String.Format("startIndex={0}&count={1}", filterObj.StartIndex, filterObj.Count); queryString += String.Format("&sortBy={0}", filterObj.SortBy); queryString += String.Format("&sortOrder={0}", filterObj.SortOrder); queryString += !String.IsNullOrEmpty(filterObj.FilterValue) ? String.Format("&filterValue={0}", filterObj.FilterValue) : ""; if (filterObj.Tags != null && filterObj.Tags.Count != 0) { queryString = filterObj.Tags.Aggregate(queryString, (current, tag) => current + String.Format("&tags[]={0}", tag)); } queryString += !String.IsNullOrEmpty(filterObj.ContactListView) ? String.Format("&contactListView={0}", filterObj.ContactListView) : ""; queryString += filterObj.ContactType != 0 ? String.Format("&contactType={0}", filterObj.ContactType) : ""; var apiServer = new Api.ApiServer(); var contactsForFirstRequest = apiServer.GetApiResponse( String.Format("api/1.0/crm/contact/filter.json?{0}", queryString), "GET"); Page.JsonPublisher(contactsForFirstRequest, "contactsForFirstRequest"); //init Page Navigator _phPagerContent.Controls.Add(new PageNavigator { ID = "contactPageNavigator", CurrentPageNumber = filterObj.CurrentPageNumber, VisibleOnePage = false, EntryCount = 0, VisiblePageCount = Global.VisiblePageCount, EntryCountOnPage = filterObj.Count }); }
private String GetProjectTitle(object folderID) { var cacheKey = "documents/folders/" + folderID.ToString(); var projectTitle = Convert.ToString(_cache.Get(cacheKey)); if (!String.IsNullOrEmpty(projectTitle)) return projectTitle; var bunchObjectID = GetBunchObjectID(folderID); if (String.IsNullOrEmpty(bunchObjectID)) throw new Exception("Bunch Object id is null"); if (!bunchObjectID.StartsWith("projects/project/")) return String.Empty; var bunchObjectIDParts = bunchObjectID.Split('/'); if (bunchObjectIDParts.Length < 3) throw new Exception("Bunch object id is not supported format"); var projectID = Convert.ToInt32(bunchObjectIDParts[bunchObjectIDParts.Length - 1]); if (HttpContext.Current == null) return string.Empty; var apiServer = new Api.ApiServer(); var apiUrl = String.Format("{0}project/{1}.json", SetupInfo.WebApiBaseUrl, projectID); var responseApi = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(apiServer.GetApiResponse(apiUrl, "GET"))))["response"]; if (responseApi != null && responseApi.HasValues) { projectTitle = Global.ReplaceInvalidCharsAndTruncate(responseApi["title"].Value<String>()); } else { return string.Empty; } if (!String.IsNullOrEmpty(projectTitle)) _cache.Insert(cacheKey, projectTitle, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(15)); return projectTitle; }
protected override void PageLoad() { AjaxPro.Utility.RegisterTypeForAjax(typeof(TaskDescriptionView), Page); ((IStudioMaster)Master).DisabledSidePanel = true; Project = RequestContext.GetCurrentProject(false); if (RequestContext.IsInConcreteProject() && Project == null) { Response.Redirect("tasks.aspx", true); } InitBreadCrumbs(); int taskID; if (Int32.TryParse(UrlParameters.EntityID, out taskID)) { if (Project == null) return; var apiServer = new Api.ApiServer(); var task = apiServer.GetApiResponse(String.Format("api/1.0/project/task/{0}.json", taskID), "GET"); JsonPublisher(task, "taskDescription"); var jTask = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(task))); if (jTask["count"].ToObject<int>() > 0) { var taskDescriptionView = (TaskDescriptionView)LoadControl(PathProvider.GetControlVirtualPath("TaskDescriptionView.ascx")); var taskDescription = new Task { ID = jTask["response"]["id"].ToObject<int>(), Title = jTask["response"]["title"].ToString(), Status = jTask["response"]["status"].ToObject<TaskStatus>(), Project = Project }; taskDescriptionView.Task = taskDescription; taskDescriptionView.CanEditTask = (bool)jTask["response"]["canEdit"]; taskDescriptionView.CanDeleteTask = (int)jTask["response"]["canWork"] == 3; _content.Controls.Add(taskDescriptionView); Master.BreadCrumbs.Add(new BreadCrumb()); } else { TaskNotFoundControlView(Project.ID); Master.BreadCrumbs.Clear(); } } else { var advansedFilter = new Studio.Controls.Common.AdvansedFilter { BlockID = "AdvansedFilter" }; _filter.Controls.Add(advansedFilter); var taskList = (TaskList) LoadControl(PathProvider.GetControlVirtualPath("TaskList.ascx")); _content.Controls.Add(taskList); var emptyScreenControlFilter = new Studio.Controls.Common.EmptyScreenControl { ImgSrc = WebImageSupplier.GetAbsoluteWebPath("empty-filter.png", ProductEntryPoint.ID), Header = TaskResource.NoTasks, Describe = TaskResource.DescrEmptyListTaskFilter, ButtonHTML = String.Format("<span class='baseLinkAction clearFilterButton'>{0}</span>", ProjectsFilterResource.ClearFilter) }; _content.Controls.Add(emptyScreenControlFilter); var emptyScreenControl = new Studio.Controls.Common.EmptyScreenControl { ImgSrc = WebImageSupplier.GetAbsoluteWebPath("empty_screen_tasks.png", ProductEntryPoint.ID), Header = TaskResource.NoTasksCreated, Describe = String.Format(TaskResource.TasksHelpTheManage) }; if (CanCreateTask()) emptyScreenControl.ButtonHTML = String.Format("<span class='baseLinkAction addFirstElement'>{0}</span>", TaskResource.AddFirstTask); _content.Controls.Add(emptyScreenControl); } GetApiData(); Title = HeaderStringHelper.GetPageTitle(TaskResource.Tasks, Master.BreadCrumbs); }
private void GetDataFromCookie() { //init data for first request var filterObj = GetFilterObjectFromCookie(); var filterNotEmpty = false; if (filterObj.ContactID != 0 || !String.IsNullOrEmpty(filterObj.FilterValue) || filterObj.FromDate != DateTime.MinValue || filterObj.ToDate != DateTime.MinValue || filterObj.OpportunityStagesID != 0 || filterObj.ResponsibleID != Guid.Empty || filterObj.StageType != null || filterObj.Tags != null && filterObj.Tags.Count != 0) filterNotEmpty = true; var queryString = String.Format("startIndex={0}&count={1}", filterObj.StartIndex, filterObj.Count); queryString += String.Format("&sortBy={0}", filterObj.SortBy); queryString += String.Format("&sortOrder={0}", filterObj.SortOrder); queryString += !String.IsNullOrEmpty(filterObj.FilterValue) ? String.Format("&filterValue={0}", filterObj.FilterValue) : ""; queryString += filterObj.ResponsibleID != Guid.Empty ? String.Format("&responsibleID={0}", filterObj.ResponsibleID) : ""; queryString += !String.IsNullOrEmpty(filterObj.StageType) ? String.Format("&stageType={0}", filterObj.StageType) : ""; queryString += filterObj.OpportunityStagesID != 0 ? String.Format("&opportunityStagesID={0}", filterObj.OpportunityStagesID) : ""; queryString += filterObj.FromDate != DateTime.MinValue && filterObj.ToDate != DateTime.MinValue ? String.Format("&fromDate={0}&toDate={1}", DateToStringApi(filterObj.FromDate), DateToStringApi(filterObj.ToDate)) : ""; queryString += filterObj.ContactID != 0 && filterObj.ContactAlsoIsParticipant != null ? String.Format("&contactID={0}&contactAlsoIsParticipant={1}", filterObj.ContactID, filterObj.ContactAlsoIsParticipant) : ""; if (filterObj.Tags != null) { queryString = filterObj.Tags.Aggregate(queryString, (current, tag) => current + String.Format("&tags[]={0}", tag)); } var apiServer = new Api.ApiServer(); var opportunitiesForFirstRequest = apiServer.GetApiResponse( String.Format("api/1.0/crm/opportunity/filter.json?{0}", queryString), "GET"); var opportunitiesRequest = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(opportunitiesForFirstRequest))); Page.JsonPublisher(opportunitiesForFirstRequest, "opportunitiesForFirstRequest"); NoDeals = !filterNotEmpty && opportunitiesRequest["count"].ToString() == "0"; //init Page Navigator _phPagerContent.Controls.Add(new PageNavigator { ID = "dealPageNavigator", CurrentPageNumber = filterObj.CurrentPageNumber, VisibleOnePage = false, EntryCount = 0, VisiblePageCount = Global.VisiblePageCount, EntryCountOnPage = filterObj.Count, }); }
private void InitForumsData() { IsForumsAvailable = true; var apiServer = new Api.ApiServer(); var apiResponse = apiServer.GetApiResponse(String.Format("{0}community/forum/count.json", SetupInfo.WebApiBaseUrl), "GET"); var obj = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(apiResponse))); var count = 0; if (Int32.TryParse(obj["response"].ToString(), out count)) ForumsHasThreadCategories = count > 0; if (InAParticularTopic && TopicID > 0) { apiServer = new Api.ApiServer(); apiResponse = apiServer.GetApiResponse(String.Format("{0}community/forum/topic/{1}.json", SetupInfo.WebApiBaseUrl, TopicID), "GET"); obj = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(apiResponse))); if(obj["response"]!=null) { obj = JObject.Parse(obj["response"].ToString()); var status = 0; if (Int32.TryParse(obj["status"].ToString(), out status)) MakeCreateNewTopic = status != 1 && status != 3; } } }
protected override void PageLoad() { ((IStudioMaster)Master).DisabledSidePanel = true; if (!Global.ModuleManager.IsVisible(ModuleType.TimeTracking)) { Response.Redirect(ProjectsCommonResource.StartURL); } var project = RequestContext.GetCurrentProject(false); if (RequestContext.IsInConcreteProject() && project == null) { Response.Redirect("default.aspx", true); } ProjectFat = new ProjectFat(project); if (!IsTimer) { if (TaskID <= 0) { var advansedFilter = new Studio.Controls.Common.AdvansedFilter { BlockID = "AdvansedFilter" }; _filter.Controls.Add(advansedFilter); var emptyScreenControlFilter = new Studio.Controls.Common.EmptyScreenControl { ImgSrc = WebImageSupplier.GetAbsoluteWebPath("empty-filter.png", ProductEntryPoint.ID), Header = TimeTrackingResource.NoTimersFilter, Describe = TimeTrackingResource.DescrEmptyListTimersFilter, ButtonHTML = String.Format("<span class='baseLinkAction clearFilterButton'>{0}</span>", ProjectsFilterResource.ClearFilter) }; emptyScreenFilter.Controls.Add(emptyScreenControlFilter); } InitPage(ProjectFat); var emptyScreenControl = new Studio.Controls.Common.EmptyScreenControl { ImgSrc = WebImageSupplier.GetAbsoluteWebPath("empty_screen_time_tracking.png", ProductEntryPoint.ID), Header = TimeTrackingResource.NoTtimers, Describe = String.Format(TimeTrackingResource.NoTimersNote) }; if (CanCreateTime()) { emptyScreenControl.ButtonHTML = String.Format("<span class='baseLinkAction addFirstElement'>{0}</span>", TimeTrackingResource.StartTimer); } emptyScreen.Controls.Add(emptyScreenControl); var apiServer = new Api.ApiServer(); if (TaskID > 0) { var timesForFirstRequest = apiServer.GetApiResponse(String.Format("api/1.0/project/task/{0}/time.json", TaskID), "GET"); JsonPublisher(timesForFirstRequest, "timesForFirstRequest"); } if (RequestContext.IsInConcreteProject()) { var projectTeam = apiServer.GetApiResponse(string.Format("api/1.0/project/{0}/team.json?fields={1}", RequestContext.GetCurrentProjectId(), "id,displayName"), "GET"); JsonPublisher(projectTeam, "projectTeam"); } TotalTime = TaskID > 0 ? Global.EngineFactory.GetTimeTrackingEngine().GetByTask(TaskID).Sum(r => r.Hours) : Global.EngineFactory.GetTimeTrackingEngine().GetByProject(ProjectFat.Project.ID).Sum(r => r.Hours); } else { var taskId = TaskID; if (taskId > 0) { var t = Global.EngineFactory.GetTaskEngine().GetByID(taskId); if (t == null || t.Status == TaskStatus.Closed) { taskId = -1; } } Master.DisabledSidePanel = true; var cntrlTimer = (TimeSpendActionTimer)LoadControl(PathProvider.GetControlVirtualPath("TimeSpendActionTimer.ascx")); if (ProjectFat != null) { cntrlTimer.Project = ProjectFat.Project; } cntrlTimer.Target = taskId; _phTimeSpendTimer.Controls.Add(cntrlTimer); Title = HeaderStringHelper.GetPageTitle(ProjectsCommonResource.AutoTimer, Master.BreadCrumbs); } }
public static void DataDealMilestoneView(BasePage page) { var apiServer = new Api.ApiServer(); var data = apiServer.GetApiResponse(String.Format("{0}crm/opportunity/stage.json", SetupInfo.WebApiBaseUrl), "GET"); page.JsonPublisher(data, "dealMilestoneList"); }
public RelationshipEvent CreateItem(RelationshipEvent item) { CRMSecurity.DemandCreateOrUpdate(item); var htmlBody = String.Empty; if (item.CreateOn == DateTime.MinValue) { item.CreateOn = TenantUtil.DateTimeNow(); } item.CreateBy = ASC.Core.SecurityContext.CurrentAccount.ID; item.LastModifedBy = ASC.Core.SecurityContext.CurrentAccount.ID; if (item.CategoryID == (int)HistoryCategorySystem.MailMessage) { var jsonObj = JObject.Parse(item.Content); var messageId = jsonObj.Value <Int32>("message_id"); var apiServer = new Api.ApiServer(); var msg = apiServer.GetApiResponse( String.Format("{0}mail/messages/{1}.json?id={1}&loadImages=true&needSanitize=true", SetupInfo.WebApiBaseUrl, messageId), "GET"); if (msg == null) { throw new ArgumentException("Mail message cannot be found"); } var msgResponseWrapper = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(msg))); var msgRequestObj = msgResponseWrapper.Value <JObject>("response"); string messageUrl; htmlBody = msgRequestObj.Value <String>("htmlBody"); using (var fileStream = new MemoryStream(Encoding.UTF8.GetBytes(htmlBody))) { var filePath = String.Format("folder_{0}/message_{1}.html", (messageId / 1000 + 1) * 1000, messageId); Global.GetStore().Save("mail_messages", filePath, fileStream); messageUrl = String.Format("{0}HttpHandlers/filehandler.ashx?action=mailmessage&message_id={1}", PathProvider.BaseAbsolutePath, messageId).ToLower(); } var msg_date_created = msgRequestObj.Value <String>("date"); var message_id = msgRequestObj.Value <Int32>("id"); item.Content = JsonConvert.SerializeObject(new { @from = msgRequestObj.Value <String>("from"), to = msgRequestObj.Value <String>("to"), cc = msgRequestObj.Value <String>("cc"), bcc = msgRequestObj.Value <String>("bcc"), subject = msgRequestObj.Value <String>("subject"), important = msgRequestObj.Value <Boolean>("important"), chain_id = msgRequestObj.Value <String>("chainId"), is_sended = msgRequestObj.Value <Int32>("folder") != 1, date_created = msg_date_created, introduction = msgRequestObj.Value <String>("introduction"), message_id = message_id, message_url = messageUrl }); item.CreateOn = DateTime.Parse(msg_date_created, CultureInfo.InvariantCulture); var sqlQueryFindMailsAlready = Query("crm_relationship_event") .SelectCount() .Where("contact_id", item.ContactID) .Where(Exp.Like("content", string.Format("\"message_id\":{0},", message_id))) .Where("entity_type", (int)item.EntityType) .Where("entity_id", item.EntityID) .Where("category_id", item.CategoryID); if (Db.ExecuteScalar <int>(sqlQueryFindMailsAlready) > 0) { throw new Exception("Already exists"); } } item.ID = Db.ExecuteScalar <int>( Insert("crm_relationship_event") .InColumnValue("id", 0) .InColumnValue("contact_id", item.ContactID) .InColumnValue("content", item.Content) .InColumnValue("create_on", TenantUtil.DateTimeToUtc(item.CreateOn)) .InColumnValue("create_by", item.CreateBy) .InColumnValue("entity_type", (int)item.EntityType) .InColumnValue("entity_id", item.EntityID) .InColumnValue("category_id", item.CategoryID) .InColumnValue("last_modifed_on", DateTime.UtcNow) .InColumnValue("last_modifed_by", item.LastModifedBy) .InColumnValue("have_files", false) .Identity(1, 0, true)); if (item.CreateOn.Kind == DateTimeKind.Utc) { item.CreateOn = TenantUtil.DateTimeFromUtc(item.CreateOn); } return(item); }
protected void GetDataFromCookie() { //init data for first request var filterObj = GetFilterObjectFromCookie(); var filterNotEmpty = false; if (!String.IsNullOrEmpty(filterObj.FilterValue) || filterObj.IsClosed != null || filterObj.Tags != null) filterNotEmpty = true; var queryString = String.Format("startIndex={0}&count={1}", filterObj.StartIndex, filterObj.Count); queryString += String.Format("&sortBy={0}", filterObj.SortBy); queryString += String.Format("&sortOrder={0}", filterObj.SortOrder); queryString += !String.IsNullOrEmpty(filterObj.FilterValue) ? String.Format("&filterValue={0}", filterObj.FilterValue) : ""; queryString += filterObj.IsClosed != null ? String.Format("&isClosed={0}", filterObj.IsClosed.ToString().ToLower()): ""; if (filterObj.Tags != null && filterObj.Tags.Count != 0) { queryString = filterObj.Tags.Aggregate(queryString, (current, tag) => current + String.Format("&tags[]={0}", tag)); } var apiServer = new Api.ApiServer(); var casesForFirstRequest = apiServer.GetApiResponse( String.Format("api/1.0/crm/case/filter.json?{0}", queryString), "GET"); var casesRequest = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(casesForFirstRequest))); Page.JsonPublisher(casesForFirstRequest, "casesForFirstRequest"); NoCases = !filterNotEmpty && casesRequest["count"].ToString() == "0"; //init Page Navigator _phPagerContent.Controls.Add(new PageNavigator { ID = "casesPageNavigator", CurrentPageNumber = filterObj.CurrentPageNumber, VisibleOnePage = false, EntryCount = 0, VisiblePageCount = Global.VisiblePageCount, EntryCountOnPage = filterObj.Count }); }
public static void DataInvoicesActionView(BasePage page, Invoice targetInvoice) { var invoiceItems = Global.DaoFactory.GetInvoiceItemDao().GetAll(); var invoiceItemsJson = JsonConvert.SerializeObject(invoiceItems.ConvertAll(item => new { id = item.ID, title = item.Title, stockKeepingUnit = item.StockKeepingUnit, description = item.Description, price = item.Price, quantity = item.Quantity, stockQuantity = item.StockQuantity, trackInventory = item.TrackInventory, invoiceTax1ID = item.InvoiceTax1ID, invoiceTax2ID = item.InvoiceTax2ID })); var invoiceTaxes = Global.DaoFactory.GetInvoiceTaxDao().GetAll(); var invoiceTaxesJson = JsonConvert.SerializeObject(invoiceTaxes.ConvertAll(item => new { id = item.ID, name = item.Name, rate = item.Rate, description = item.Description })); var invoiceSettings = Global.TenantSettings.InvoiceSetting ?? InvoiceSetting.DefaultSettings; var invoiceSettingsJson = JsonConvert.SerializeObject(new { autogenerated = invoiceSettings.Autogenerated, prefix = invoiceSettings.Prefix, number = invoiceSettings.Number, terms = invoiceSettings.Terms }); var presetContactsJson = string.Empty; var presetContactID = UrlParameters.ContactID; if (targetInvoice == null && presetContactID != 0) { var targetContact = Global.DaoFactory.GetContactDao().GetByID(presetContactID); if (targetContact != null) { presetContactsJson = JsonConvert.SerializeObject(new { id = targetContact.ID, displayName = targetContact.GetTitle().HtmlEncode().ReplaceSingleQuote(), smallFotoUrl = ContactPhotoManager.GetSmallSizePhoto(targetContact.ID, targetContact is Company), currencyAbbreviation = targetContact.Currency }); } } var currencyRates = Global.DaoFactory.GetCurrencyRateDao().GetAll(); var currencyRatesJson = JsonConvert.SerializeObject(currencyRates.ConvertAll(item => new { id = item.ID, fromCurrency = item.FromCurrency, toCurrency = item.ToCurrency, rate = item.Rate })); var apiServer = new Api.ApiServer(); const string apiUrlFormat = "{0}crm/contact/{1}/data.json"; var contactInfoData = string.Empty; var consigneeInfoData = string.Empty; if(targetInvoice != null) { if (targetInvoice.ContactID > 0) { contactInfoData = apiServer.GetApiResponse(String.Format(apiUrlFormat, SetupInfo.WebApiBaseUrl, targetInvoice.ContactID), "GET"); } if (targetInvoice.ConsigneeID > 0) { consigneeInfoData = apiServer.GetApiResponse(String.Format(apiUrlFormat, SetupInfo.WebApiBaseUrl, targetInvoice.ConsigneeID), "GET"); } } else if (presetContactID != 0) { contactInfoData = apiServer.GetApiResponse(String.Format(apiUrlFormat, SetupInfo.WebApiBaseUrl, presetContactID), "GET"); } var apiUrl = String.Format("{0}crm/invoice/{1}.json", SetupInfo.WebApiBaseUrl, targetInvoice != null ? targetInvoice.ID.ToString(CultureInfo.InvariantCulture) : "sample"); var invoiceData = apiServer.GetApiResponse(apiUrl, "GET"); var script = String.Format(@" var invoiceItems = '{0}'; var invoiceTaxes = '{1}'; var invoiceSettings = '{2}'; var invoicePresetContact = '{3}'; var currencyRates = '{4}'; var invoiceJsonData = '{5}'; ", Global.EncodeTo64(invoiceItemsJson), Global.EncodeTo64(invoiceTaxesJson), Global.EncodeTo64(invoiceSettingsJson), Global.EncodeTo64(presetContactsJson), Global.EncodeTo64(currencyRatesJson), targetInvoice != null ? Global.EncodeTo64(targetInvoice.JsonData) : "" ); page.RegisterInlineScript(script, onReady: false); page.JsonPublisher(contactInfoData, "invoiceContactInfo"); page.JsonPublisher(consigneeInfoData, "invoiceConsigneeInfo"); page.JsonPublisher(invoiceData, "invoice"); }