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"); } }
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); }
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()); }
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; })); }