Esempio n. 1
0
 public long CreateListItem(long listId, [FromBody] ListItem listItem)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         if (listId > 0 && ctx.Lists.Any(l => l.Id == listId))
         {
             if (listItem.Id > 0 && ctx.ListItems.Any(l => l.Id == listItem.Id))
             {
                 // update with post not allowed
             }
             else
             {
                 if (listItem.ListItemGroup?.Id > 0)
                 {
                     var listItemGroup = ctx.ListItemGroups.FirstOrDefault(x => x.Id == listItem.ListItemGroup.Id);
                     if (listItemGroup != null)
                     {
                         listItem.ListItemGroup = listItemGroup;
                     }
                 }
                 listItem.List = ctx.Lists.Include("ListItems").Single(l => l.Id == listId);
                 listItem      = ctx.ListItems.Add(listItem);
             }
             ctx.SaveChanges();
         }
         else
         {
             // list does not exist
         }
     }
     return(listItem.Id);
 }
Esempio n. 2
0
 public long CreateListItemGroup(long listId, [FromBody] ListItemGroup listItemGroup)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         if (listId > 0 && ctx.Lists.Any(l => l.Id == listId))
         {
             if (listItemGroup.Id > 0 && ctx.ListItemGroups.Any(l => l.Id == listItemGroup.Id))
             {
                 // update with post not allowed
             }
             else
             {
                 listItemGroup.List = ctx.Lists.Single(l => l.Id == listId);
                 listItemGroup      = ctx.ListItemGroups.Add(listItemGroup);
             }
             ctx.SaveChanges();
         }
         else
         {
             // list does not exist
         }
     }
     return(listItemGroup.Id);
 }
Esempio n. 3
0
 public long Create(long listId, [FromBody] ListSharing listSharing)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         if (listId > 0 && ctx.Lists.Any(l => l.Id == listId))
         {
             var list = ctx.Lists.Include("ListSharings").First(x => x.Id == listId);
             if (listSharing?.Id <= 0 && listSharing.User?.Id > 0 && ctx.Users.Any(x => x.Id == listSharing.User.Id))
             {
                 var user = ctx.Users.First(x => x.Id == listSharing.User.Id);
                 if (!list.ListSharings.Any(x => x.User.Id == listSharing.User.Id))
                 {
                     listSharing.List = list;
                     listSharing.User = user;
                     listSharing      = ctx.ListSharings.Add(listSharing);
                 }
             }
             else
             {
                 // user does not exist
             }
             ctx.SaveChanges();
         }
         else
         {
             // list does not exist
         }
     }
     return(listSharing.Id);
 }
Esempio n. 4
0
        public List GetList(long listId)
        {
            Login();
            List list;

            using (var ctx = new Project3Context(AuthenticatedUser))
            {
                list = ctx.Lists.Single(l => l.Id == listId);
            }
            return(list);
        }
Esempio n. 5
0
        public List <ListSharing> GetAll(long listId)
        {
            Login();
            List <ListSharing> listSharings = new List <ListSharing>();

            using (var ctx = new Project3Context(AuthenticatedUser))
            {
                listSharings = ctx.ListSharings.Include("List").Include("User").Where(l => l.List.Id == listId).ToList();
            }
            listSharings.ForEach(x => x.List.ListSharings = null);
            return(listSharings);
        }
Esempio n. 6
0
        public IEnumerable <List> GetLists()
        {
            Login();
            List <List> lists;

            using (var ctx = new Project3Context(AuthenticatedUser))
            {
                lists = ctx.Lists.Where(l => l.Owner.Id == AuthenticatedUser.Id).ToList();
                var sharings = ctx.ListSharings.Include("User").Include("List").ToList().Where(x => x.User == AuthenticatedUser);
                lists.AddRange(sharings.Select(x => x.List));
            }
            lists.ForEach(x => x.ListSharings = null);
            return(lists);
        }
Esempio n. 7
0
        public List <User> GetAll()
        {
            Login();

            List <User> users = new List <User>();

            using (var ctx = new Project3Context(AuthenticatedUser))
            {
                users = ctx.Users.ToList();
            }
            return(users.Select(x => new User()
            {
                Id = x.Id,
                Name = x.Name
            }).ToList());
        }
Esempio n. 8
0
        public List <ListItemGroup> GetListItemGroups(long listId)
        {
            Login();
            List <ListItemGroup> listItemGroups = new List <ListItemGroup>();

            using (var ctx = new Project3Context(AuthenticatedUser))
            {
                var list = ctx.Lists.Include("ListItemGroups").Include("ListItems").FirstOrDefault(l => l.Id == listId);
                if (list.ListItemGroups != null)
                {
                    listItemGroups = list.ListItemGroups.ToList();
                }
            }
            listItemGroups.ForEach(x => x.ListItems.ForEach(y => y.ListItemGroup = null));
            return(listItemGroups);
        }
Esempio n. 9
0
        private User GetUser(VerifiedJwt verifiedJwt)
        {
            using (var ctx = new Project3Context(verifiedJwt.Subject))
            {
                if (!ctx.Users.Any(u => u.Subject == verifiedJwt.Subject))
                {
                    ctx.Users.Add(new User()
                    {
                        Name    = verifiedJwt.EMail,
                        Subject = verifiedJwt.Subject
                    });
                    ctx.SaveChanges();
                }

                return(ctx.Users.Single(u => u.Subject == verifiedJwt.Subject));
            }
        }
Esempio n. 10
0
 public void DeleteListItem(long listId, long listItemId)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         var list = ctx.Lists.Include("ListItems").FirstOrDefault(l => l.Id == listId);
         if (list != null && list.ListItems != null)
         {
             var listItem = list.ListItems.FirstOrDefault(li => li.Id == listItemId);
             if (listItem != null)
             {
                 ctx.ListItems.Remove(listItem);
                 ctx.SaveChanges();
             }
         }
     }
 }
Esempio n. 11
0
 public void Delete(long listId, long listSharingId)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         var list = ctx.Lists.Include("ListSharings").FirstOrDefault(l => l.Id == listId);
         if (list?.ListSharings != null)
         {
             var listSharing = list.ListSharings.FirstOrDefault(x => x.Id == listSharingId);
             if (listSharing != null)
             {
                 ctx.ListSharings.Remove(listSharing);
                 ctx.SaveChanges();
             }
         }
     }
 }
Esempio n. 12
0
 public void UpdateListItemGroup(long listId, long listItemGroupId, [FromBody] ListItemGroup value)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         var list = ctx.Lists.Include("ListItemGroups").FirstOrDefault(l => l.Id == listId);
         if (list?.ListItemGroups != null)
         {
             var listItemGroup = list.ListItemGroups.FirstOrDefault(li => li.Id == listItemGroupId);
             if (listItemGroup != null)
             {
                 listItemGroup.Name = value.Name;
                 ctx.SaveChanges();
             }
         }
     }
 }
Esempio n. 13
0
 public void UpdateListItem(long listId, long listItemId, [FromBody] ListItem value)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         var list = ctx.Lists.Include("ListItems").FirstOrDefault(l => l.Id == listId);
         if (list != null && list.ListItems != null)
         {
             var listItem = list.ListItems.FirstOrDefault(li => li.Id == listItemId);
             if (listItem != null)
             {
                 listItem.Name       = value.Name;
                 listItem.IsSelected = value.IsSelected;
                 ctx.SaveChanges();
             }
         }
     }
 }
Esempio n. 14
0
 public long PostList([FromBody] List list)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         list.Owner = AuthenticatedUser;
         if (list.Id > 0 && ctx.Lists.Any(l => l.Id == list.Id))
         {
             // update with post not allowed
         }
         else
         {
             list = ctx.Lists.Add(list);
         }
         ctx.SaveChanges();
     }
     return(list.Id);
 }
Esempio n. 15
0
 public void DeleteList(long listId)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         var list = ctx.Lists.Include("ListItems").Include("ListItemGroups").FirstOrDefault(l => l.Id == listId);
         if (list != null)
         {
             foreach (var listItem in list.ListItems.ToList())
             {
                 ctx.ListItems.Remove(listItem);
             }
             foreach (var listItemGroup in list.ListItemGroups.ToList())
             {
                 ctx.ListItemGroups.Remove(listItemGroup);
             }
             ctx.Lists.Remove(list);
             ctx.SaveChanges();
         }
     }
 }
Esempio n. 16
0
 public void PutList(long listId, [FromBody] List value)
 {
     Login();
     using (var ctx = new Project3Context(AuthenticatedUser))
     {
         var list = ctx.Lists.Include("ListItems").Include("ListItemGroups").FirstOrDefault(l => l.Id == listId);
         if (list != null)
         {
             if (list.IsGroupingEnabled != value.IsGroupingEnabled)
             {
                 list.IsGroupingEnabled = value.IsGroupingEnabled;
                 if (list.IsGroupingEnabled)
                 {
                     var group = new ListItemGroup
                     {
                         Name = "group"
                     };
                     foreach (var listItem in list.ListItems)
                     {
                         listItem.ListItemGroup = group;
                     }
                     list.ListItemGroups.Add(group);
                 }
                 else
                 {
                     foreach (var listItemGroup in list.ListItemGroups.ToList())
                     {
                         ctx.ListItemGroups.Remove(listItemGroup);
                     }
                 }
             }
             list.Name = value.Name;
             ctx.SaveChanges();
         }
     }
 }
 public MoviesController(Project3Context context)
 {
     _context = context;
 }