public SubmitModule() { this.Get["/submit/{frageId:int}"] = o => { user lUser = this.GetUserFromId(this.Request.Cookies["id"]); DynamicDictionary lQueryDictionary = this.Request.Query as DynamicDictionary; if (lQueryDictionary == null || lUser == null || !this.CheckIfCanAnswer(o.frageId, lUser) || (!lQueryDictionary.ContainsKey("answer") && !lQueryDictionary.ContainsKey("alt_answer"))) return this.Response.AsRedirect("/").WithCookie("error", "true"); using (umfrageDB db = new umfrageDB()) { answer lLog = new answer { FrageId = o.frageId, AnswerId = lQueryDictionary.ContainsKey("alt_answer") ? -1 : lQueryDictionary["answer"], UserId = lUser.AuthenticationId }; if (lQueryDictionary.ContainsKey("alt_answer")) lLog.AltAntwort = lQueryDictionary["alt_answer"]; db.Insert(lLog); } return this.Response.AsRedirect("/"); }; }
public dynamic Process(NancyModule nancyModule, AuthenticateCallbackData model) { string lLoginCookie = new Tuple<object, object>(model.AuthenticatedClient.GetHashCode(), DateTime.Now.GetHashCode()).GetHashCode().ToString(); using (umfrageDB db = new umfrageDB()) { string lAuthHash = MD5.Create() .ComputeHash(Encoding.UTF8.GetBytes(model.AuthenticatedClient.UserInformation.Id)) .ToHex(false); if ((from p in db.users where p.AuthenticationId == lAuthHash select p).Any()) { db.users.Where(user => user.AuthenticationId == lAuthHash) .Set(user => user.Guid, lLoginCookie).Set(user => user.LastLogin, DateTime.Now) .Update(); } else { user lUser = new user { AuthenticationId = lAuthHash, Guid = lLoginCookie, TimeCreated = DateTime.Now, LastLogin = DateTime.Now }; db.Insert(lUser); } } return nancyModule.Response.AsRedirect("/").WithCookie("id", lLoginCookie); }