Ejemplo n.º 1
0
        public async Task Award(EditathonCode code, [FromBody] IDictionary <string, string> awards)
        {
            if (awards == null || awards.Count == 0)
            {
                throw BadRequest();
            }

            var e    = code.Get();
            var wiki = MediaWikis.Create(e.Wiki, _identity);

            foreach (var userTalk in await UserTalk.GetAsync(wiki, awards.Select(r => r.Key)))
            {
                await userTalk.WriteAsync(awards[userTalk.UserName], "Automated awarding");
            }
        }
Ejemplo n.º 2
0
        private UserTalk SaveUserTalk(DocumentStore store)
        {
            var userTalk = new UserTalk
            {
                UserDefs = new Dictionary <string, TalkUserDef>()
                {
                    { "test1", new TalkUserDef() },
                    { "test2", new TalkUserDef() }
                },
                Name = "Grisha"
            };

            using (var session = store.OpenSession())
            {
                session.Store(userTalk);
                session.SaveChanges();
            }

            return(userTalk);
        }
Ejemplo n.º 3
0
        public async Task <HttpResponseMessage> Award(string code, [FromBody] IDictionary <string, string> awards)
        {
            if (awards == null || awards.Count == 0)
            {
                return(Request.CreateResponse(System.Net.HttpStatusCode.BadRequest));
            }

            var user = _identity.GetUserInfo();

            if (user == null)
            {
                return(Unauthorized());
            }

            var e = Session.Query <Editathon>()
                    .Fetch(_ => _.Jury)
                    .SingleOrDefault(i => i.Code == code);

            if (e == null)
            {
                return(NotFound());
            }

            if (!e.Jury.Contains(user.Username))
            {
                return(Forbidden());
            }

            var wiki = MediaWikis.Create(e.Wiki, _identity);

            foreach (var userTalk in await UserTalk.GetAsync(wiki, awards.Select(r => r.Key)))
            {
                await userTalk.WriteAsync(awards[userTalk.UserName], "Automated awarding");
            }

            return(Ok());
        }
Ejemplo n.º 4
0
        public async Task <UserTalkResult> SetUserTalks(Int32 userId, List <int> talksId, string endDate, bool isUnCheckAll)
        {
            return(await Task.Run(() =>
            {
                var userTalksModel = new UserTalkResult();
                var addTalkList = new List <TalkAccessList>();
                var removeTalkList = new List <TalkAccessList>();

                if (talksId == null && isUnCheckAll == true)
                {
                    var userTalksdata = _contex.UserTalks.Where(t => t.UserId == userId);


                    foreach (var item in userTalksdata)
                    {
                        var removeTalk = new TalkAccessList();
                        removeTalk.TalkId = item.TalkId.Value;
                        removeTalk.TalkName = item.TalkMaster.Name;

                        removeTalkList.Add(removeTalk);

                        _contex.UserTalks.Remove(item);
                    }
                    _contex.SaveChanges();
                }

                if (talksId != null)
                {
                    var userTalksdata = _contex.UserTalks.Where(t => t.UserId == userId);


                    foreach (var item in userTalksdata)
                    {
                        if (!talksId.Contains(item.TalkId.Value))
                        {
                            var removeTalk = new TalkAccessList();
                            removeTalk.TalkId = item.TalkId.Value;
                            removeTalk.TalkName = item.TalkMaster.Name;

                            removeTalkList.Add(removeTalk);

                            _contex.UserTalks.Remove(item);
                        }
                    }

                    foreach (var item in talksId)
                    {
                        if (!userTalksdata.Where(t => t.TalkId.Value == item).Any())
                        {
                            var talk = _contex.TalkMasters.Where(t => t.Id == item).FirstOrDefault();

                            var dataModel = new UserTalk();
                            dataModel.Enddate = DateTime.ParseExact(endDate, "MM-dd-yyyy", System.Globalization.CultureInfo.InvariantCulture);
                            dataModel.TalkId = item;
                            dataModel.UserId = userId;
                            dataModel.IsActive = 0;
                            dataModel.IsVideoStatus = 0;
                            dataModel.IsExamlear = 0;
                            dataModel.IsModuleClear = 0;
                            dataModel.CreateDate = DateTime.UtcNow;
                            dataModel.UpdateDate = DateTime.UtcNow;
                            dataModel.ModuleId = talk.ModulId;

                            //Add new talks name
                            var addTalk = new TalkAccessList();
                            addTalk.TalkId = dataModel.TalkId.Value;
                            addTalk.TalkName = talk.Name;

                            addTalkList.Add(addTalk);

                            _contex.UserTalks.Add(dataModel);
                        }
                    }
                    _contex.SaveChanges();
                }

                userTalksModel.UserTalkList = _contex.UserTalks.Where(t => t.UserId == userId).ToList();
                userTalksModel.addTalkList = addTalkList;
                userTalksModel.removeTalkList = removeTalkList;

                return userTalksModel;
            }));
        }