private IHttpActionResult UpdateEntity <TEntity>(TEntity entity) where TEntity : ListItemEntity, new() { try { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } using (ClientContext context = new Authentication.LowTrustTokenHelper(_tokenHelper).GetUserClientContext()) { var projectTaskContext = new ProjectTaskContext(context); if (entity.Id > 0) { var entry = projectTaskContext.List <TEntity>().WithPermissions().AddOrUpdate(entity); projectTaskContext.SaveChanges(); return(Json(entry.Entity)); } else { throw new Exception($"Cannot update the item with ID={entity.Id}."); } } } catch (Exception ex) { return(new JsonErrorResult(ex)); } }
public IHttpActionResult Deploy() { try { using (ClientContext context = new Authentication.LowTrustTokenHelper(_tokenHelper).GetUserClientContext()) { ProjectTaskContext projectTaskContext = new ProjectTaskContext(context); ProjectTaskProvisionModel <SpDataContext> projectTaskProvisionModel = projectTaskContext.CreateModel(); projectTaskProvisionModel.UnProvision(true); projectTaskProvisionModel.Provision(); List list = projectTaskContext.List <ProjectTask>().GetSpList(); Helper.SetAppInstalled(list, true); // Helper.SetAppInstalled(context, true); //using (ClientContext appContext = new Authentication.LowTrustTokenHelper(_tokenHelper).GetAppOnlyClienContext(context.Url)) //{ // Helper.SetAppInstalled(appContext, true); //} return(Json(new { ok = true })); } } catch (Exception ex) { return(new JsonErrorResult(ex)); } }
public async Task <ActionResult> Index() { using (ClientContext userContext = new Authentication.LowTrustTokenHelper(_lowTrustTokenHelper).GetUserClientContext()) { using (ClientContext context = new Authentication.LowTrustTokenHelper(_lowTrustTokenHelper).GetAppOnlyClienContext(userContext.Url)) { // ViewBag.IsAppInstalled = await Helper.IsAppInstalled(context); // await LoadData(userContext); // return View(); List list = new ProjectTaskContext(context).List <ProjectTask>().GetSpList(); if (await Helper.IsAppInstalled(list)) { ViewBag.IsAppInstalled = true; await LoadData(userContext); return(View()); } else { await Task.FromResult(0); return(RedirectToAction("Admin")); } } } }
private TEntity[] GetItems(ClientContext context, string where, int count, string sortBy, string groupBy, string pagingToken, string[] fields, out string nextPageToken, out bool canCreate) { ProjectTaskContext projectTaskContext = new ProjectTaskContext(context); IQueryable <TEntity> source = projectTaskContext.List <TEntity>(); if (!string.IsNullOrWhiteSpace(where)) { source = source.Where(where /*.Replace(""", "\"")*/); } if (!string.IsNullOrWhiteSpace(sortBy)) { source = source.OrderBy(sortBy); } if (!string.IsNullOrWhiteSpace(groupBy)) { var param = Expression.Parameter(typeof(TEntity), "entity"); var prop = Expression.PropertyOrField(param, groupBy); var predicate = Expression.Lambda <Func <TEntity, object> >(Expression.Convert(prop, typeof(object)), param); source = source.GroupBy(/*count*/ 0, predicate); } if (count <= 0 || count > 10000) { count = 100; } if (!string.IsNullOrEmpty(pagingToken)) { source = source.Paged(pagingToken, count); } else { source = source.Take(count); } if (fields != null && fields.Length > 0) { var param = Expression.Parameter(typeof(TEntity), "entity"); var props = fields.Select(field => Expression.PropertyOrField(param, field)); var predicates = props.Select(prop => Expression.Lambda <Func <TEntity, object> >(Expression.Convert(prop, typeof(object)), param)); source = source.Include(predicates.ToArray()); } string pageToken = null; source = source.WithEvent(null, nextToken => { pageToken = nextToken; }); source = source.WithPermissions(); var result = source.ToArray(); nextPageToken = pageToken; canCreate = source.HasPermission(PermissionKind.AddListItems); return(result); }
public async Task <ActionResult> Admin() { using (ClientContext context = new Authentication.LowTrustTokenHelper(_lowTrustTokenHelper).GetUserClientContext()) { await LoadData(context); List list = new ProjectTaskContext(context).List <ProjectTask>().GetSpList(); ViewBag.IsAppInstalled = await Helper.IsAppInstalled(list); return(View()); } }
private IHttpActionResult GetItemResult <TEntity>(int id) where TEntity : ListItemEntity, new() { try { using (ClientContext context = new Authentication.LowTrustTokenHelper(_tokenHelper).GetUserClientContext()) { var projectTaskContext = new ProjectTaskContext(context); var result = (id > 0) ? projectTaskContext.List <TEntity>().WithPermissions().FirstOrDefault((TEntity item) => item.Id == id) : null; if (result == null) { throw new Exception($"Item with Id={id} not found."); } return(Json(result)); } } catch (Exception ex) { return(new JsonErrorResult(ex)); } }
private IHttpActionResult Delete <TEntity>(IEnumerable <int> itemIds) where TEntity : ListItemEntity, new() { try { if (itemIds == null) { throw new ArgumentNullException(nameof(itemIds)); } using (ClientContext context = new Authentication.LowTrustTokenHelper(_tokenHelper).GetUserClientContext()) { var projectTaskContext = new ProjectTaskContext(context); bool result = projectTaskContext.List <TEntity>().Delete(itemIds.ToArray()); projectTaskContext.SaveChanges(); return(Json(result)); } } catch (Exception ex) { return(new JsonErrorResult(ex)); } }
private IHttpActionResult AddEntity <TEntity>(TEntity entity) where TEntity : ListItemEntity, new() { try { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } using (ClientContext context = new Authentication.LowTrustTokenHelper(_tokenHelper).GetUserClientContext()) { var projectTaskContext = new ProjectTaskContext(context); var entry = projectTaskContext.List <TEntity>().AddOrUpdate(entity, 0); projectTaskContext.SaveChanges(); return(Json(entry.Entity)); } } catch (Exception ex) { return(new JsonErrorResult(ex)); } }