public async Task <ActionResult> Remove(int id) { using (ExtensionEntryDataProvider dataProvider = new ExtensionEntryDataProvider()) { if (!await dataProvider.RemoveItemByIdentityAsync(id)) { throw new Error(this.__ResStr("cantRemove", "Couldn't remove extension with id {0}", id)); } return(Reload(null, Reload: ReloadEnum.ModuleParts)); } }
public async Task <ActionResult> EditExtension(string extension) { using (ExtensionEntryDataProvider dataProvider = new ExtensionEntryDataProvider()) { EditModel model = new EditModel { }; ExtensionEntry data = await dataProvider.GetItemAsync(extension); if (data == null) { throw new Error(this.__ResStr("notFound", "Extension \"{0}\" not found"), extension); } model.SetData(data); Module.Title = this.__ResStr("modTitle", "Extension \"{0}\"", extension); return(View(model)); } }
public async Task <ActionResult> AddExtension_Partial(AddModel model) { if (!ModelState.IsValid) { return(PartialView(model)); } using (ExtensionEntryDataProvider dataProvider = new ExtensionEntryDataProvider()) { if (!await dataProvider.AddItemAsync(model.GetData())) { ModelState.AddModelError(nameof(AddModel.Extension), this.__ResStr("dup", "An entry for extension {0} already exists", model.Extension)); return(PartialView(model)); } return(FormProcessed(model, this.__ResStr("okSaved", "New extension saved"), OnPopupClose: OnPopupCloseEnum.ReloadModule)); } }
private GridDefinition GetGridModel() { return(new GridDefinition { SizeStyle = GridDefinition.SizeStyleEnum.SizeToFit, ModuleGuid = Module.ModuleGuid, //SettingsModuleGuid = Module.PermanentGuid, RecordType = typeof(BrowseItem), AjaxUrl = GetActionUrl(nameof(BrowseVoiceMails_GridData)), DirectDataAsync = async(int skip, int take, List <DataProviderSortInfo> sort, List <DataProviderFilterInfo> filters) => { List <string> extensions = new List <string>(); if (!Manager.HasSuperUserRole) { using (ExtensionEntryDataProvider extDP = new ExtensionEntryDataProvider()) { extensions = await extDP.GetExtensionsForUserAsync(Manager.UserId); } if (extensions.Count == 0) { throw new Error(this.__ResStr("noInbox", "No extension defined for the current user")); } } DisplayVoiceMailModule dispMod = (DisplayVoiceMailModule)await ModuleDefinition.LoadAsync(ModuleDefinition.GetPermanentGuid(typeof(DisplayVoiceMailModule))); using (VoiceMailDataProvider dataProvider = new VoiceMailDataProvider()) { List <DataProviderFilterInfo> extFilters = null; foreach (string extension in extensions) { extFilters = DataProviderFilterInfo.Join(extFilters, new DataProviderFilterInfo { Field = nameof(ExtensionEntry.Extension), Operator = "==", Value = extension }, SimpleLogic: "||"); } if (extFilters != null) { filters = DataProviderFilterInfo.Join(filters, new DataProviderFilterInfo { Filters = extFilters, Logic = "||" }); } DataProviderGetRecords <VoiceMailData> browseItems = await dataProvider.GetItemsAsync(skip, take, sort, filters); return new DataSourceResult { Data = (from s in browseItems.Data select new BrowseItem(Module, dispMod, s)).ToList <object>(), Total = browseItems.Total }; } }, }); }
private GridDefinition GetGridModel() { return(new GridDefinition { SizeStyle = GridDefinition.SizeStyleEnum.SizeToFit, ModuleGuid = Module.ModuleGuid, SettingsModuleGuid = Module.PermanentGuid, RecordType = typeof(BrowseItem), AjaxUrl = GetActionUrl(nameof(BrowseExtensions_GridData)), DirectDataAsync = async(int skip, int take, List <DataProviderSortInfo> sort, List <DataProviderFilterInfo> filters) => { using (ExtensionEntryDataProvider dataProvider = new ExtensionEntryDataProvider()) { DataProviderGetRecords <ExtensionEntry> browseItems = await dataProvider.GetItemsAsync(skip, take, sort, filters); return new DataSourceResult { Data = (from s in browseItems.Data select new BrowseItem(Module, s)).ToList <object>(), Total = browseItems.Total }; } }, }); }
public async Task <ActionResult> EditExtension_Partial(EditModel model) { string originalExtension = model.OriginalExtension; using (ExtensionEntryDataProvider dataProvider = new ExtensionEntryDataProvider()) { ExtensionEntry data = await dataProvider.GetItemAsync(originalExtension);// get the original item if (data == null) { ModelState.AddModelError("Extension", this.__ResStr("alreadyDeleted", "Extension {0} has been removed and can no longer be updated", originalExtension)); return(PartialView(model)); } ObjectSupport.CopyData(data, model, ReadOnly: true); // update read only properties in model in case there is an error if (!ModelState.IsValid) { return(PartialView(model)); } data = model.GetData(data); // merge new data into original model.SetData(data); // and all the data back into model for final display switch (await dataProvider.UpdateItemAsync(data)) { default: case UpdateStatusEnum.RecordDeleted: ModelState.AddModelError("Name", this.__ResStr("alreadyDeleted", "Extension {0} has been removed and can no longer be updated", model.OriginalExtension)); return(PartialView(model)); case UpdateStatusEnum.NewKeyExists: ModelState.AddModelError("Name", this.__ResStr("alreadyExists", "Extension {0} already exists.", data.Extension)); return(PartialView(model)); case UpdateStatusEnum.OK: break; } return(FormProcessed(model, this.__ResStr("okSaved", "Extension saved"), OnPopupClose: OnPopupCloseEnum.ReloadModule)); } }