Esempio n. 1
0
 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));
     }
 }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
        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"));
                    }
                }
            }
        }
Esempio n. 4
0
            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("&quot;", "\"")*/);
                }
                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);
            }
Esempio n. 5
0
        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());
            }
        }
Esempio n. 6
0
 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));
     }
 }
Esempio n. 7
0
 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));
     }
 }
Esempio n. 8
0
 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));
     }
 }