Пример #1
0
        public static async Task <PingListEntry> AddEntryToList(Pinglist list, string username, int?userId, string remarks, DataContext ctx)
        {
            username = username?.Trim();
            var frUser = await(username != null ? FRHelpers.GetOrUpdateFRUser(username, ctx) : FRHelpers.GetOrUpdateFRUser(userId.Value, ctx));

            if (frUser == null)
            {
                throw new System.Exception($"Could not validate the existence of user '{username ?? userId.ToString()}.'");
            }

            if (ctx.Pinglists.Find(list.Id).Entries.Any(x => x.FRUser.Id == frUser.Id))
            {
                return(list.Entries.FirstOrDefault(x => x.FRUser.Id == frUser.Id));
            }

            var entry = new PingListEntry
            {
                FRUser      = frUser,
                GeneratedId = CodeHelpers.GenerateId(5, list.Entries.Select(x => x.GeneratedId).ToList()),
                SecretKey   = CodeHelpers.GenerateId(),
                Remarks     = remarks
            };

            list.Entries.Add(entry);

            return(entry);
        }
Пример #2
0
        private bool HasAccess(Pinglist list, string secretKey)
        {
            if (list.IsPublic || (list.SecretKey == secretKey && list.Creator == null) || (list.Creator != null && list.Creator.Id == HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId <int>()))
            {
                return(true);
            }

            return(false);
        }
Пример #3
0
        private bool IsOwner(Pinglist list, string secretKey)
        {
            if (list.Creator == null && list.SecretKey == secretKey)
            {
                return(true);
            }
            if (list.Creator != null && Request.IsAuthenticated && list.Creator.Id == HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId <int>())
            {
                return(true);
            }

            return(false);
        }