public HttpResponseMessage Enrol(string code) { ServerUtils.LogTelemetryEvent(User.Identity.Name, "Enrol"); ServiceData.Models.Study found = _studyRepository.Search( st => st.Code == code ).FirstOrDefault(); ServiceData.Models.User thisUser = _userRepository.Search( usr => usr.Email == User.Identity.Name ).FirstOrDefault(); if (found != null && thisUser != null && !found.StudyEnrolments.Any(en => en.UserId == thisUser.Id)) { Models.StudyEnrolment enrol = new Models.StudyEnrolment { CreatedAt = DateTime.UtcNow, StudyId = found.Id, Enrolled = true, UserId = thisUser.Id }; var serviceMod = Models.StudyEnrolment.ToServiceModel(enrol, true, true); var finalRes = _studyEnrolmentRepository.Insert(serviceMod); return(Request.CreateResponse(HttpStatusCode.OK, finalRes)); } return(Request.CreateResponse(HttpStatusCode.NotFound)); }
// POST api/values public HttpResponseMessage Post([FromBody] Models.UserCondition newCondition) { try { newCondition.Owner = Models.User.ToAppModel(_userRepository.Search(u => u.Email == User.Identity.Name).FirstOrDefault()); ServiceData.Models.UserCondition returned = _conditionRepository.Insert(Models.UserCondition.ToServiceModel(newCondition, true)); ServerUtils.LogTelemetryEvent(User.Identity.Name, "AddCondition"); PostLog("UserConditions_Create", newCondition.Owner.Id); return(Request.CreateResponse(HttpStatusCode.OK, Models.UserCondition.ToAppModel(returned, false))); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, e)); } }
public async Task <HttpResponseMessage> Post([FromBody] Models.Photo newPhoto) { try { ServiceData.Models.Photo returned = _photoRepository.Insert(Models.Photo.ToServiceModel(newPhoto, true)); UpdateShares(returned); ServerUtils.LogTelemetryEvent(User.Identity.Name, "AddPhoto"); PostLog("Photos_Create"); return(Request.CreateResponse(HttpStatusCode.OK, Models.Photo.ToAppModel(returned, false))); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, e)); } }
public async Task <HttpResponseMessage> Post([FromBody] Models.Share newShare) { try { // Does this share already exist? Change the existing share rather than making a new one ServiceData.Models.Share found = _shareRepository.Search(sh => sh.UserCondition.Id == newShare.UserCondition.Id && sh.SharedEmail == newShare.SharedEmail).FirstOrDefault(); Models.Share toRet = null; if (found != null) { found.ExpireDate = newShare.ExpireDate; _shareRepository.Update(found); toRet = Models.Share.ToAppModel(found, false); } else { newShare.CreatedAt = DateTime.Now; newShare.Updated = true; ServiceData.Models.Share returned = _shareRepository.Insert(Models.Share.ToServiceModel(newShare, true)); toRet = Models.Share.ToAppModel(returned, false); await ServerUtils.SendEmail( toRet.SharedEmail, "", "New MySkinSelfie share from " + newShare.UserCondition.Owner.Name, string.Format("{0} has shared their album '{1}' with you." + " Create or log into an account with this email address at {2} to see it!", newShare.UserCondition.Owner.Name, newShare.UserCondition.Condition, string.Format("{0}Conditions/Index/{1}", ConfidentialData.SiteUrl, toRet.UserCondition.Id))); } ServerUtils.LogTelemetryEvent(User.Identity.Name, "AddShare"); return(Request.CreateResponse(HttpStatusCode.OK, toRet)); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, e)); } }
private void PostLog(string eventType, int?userId = null) { if (userId == null) { var user = _userRepository.Search(u => u.Email == User.Identity.Name).FirstOrDefault(); if (user == null) { return; } userId = user.Id; } _logRepository.Insert(new ServiceData.Models.EventLog { Action = eventType, CreatedAt = DateTime.Now, UserId = (int)userId }); }
//[AllowAnonymous] //public HttpResponseMessage Get() //{ // List<ServiceData.Models.User> found = _userRepository.GetAll().ToList(); // List<UserStat> toRet = new List<UserStat>(); // Regex initials = new Regex(@"(\b[a-zA-Z])[a-zA-Z]* ?"); // foreach (ServiceData.Models.User u in found) // { // if (u.BirthDate == null || (DateTime.UtcNow - u.BirthDate).TotalDays < 2) // { // u.BirthDate = DateTime.UtcNow.AddYears(-30); // } // UserStat thisStat = new UserStat // { // Initials = initials.Replace(u.Name, "$1"), // DoB = u.BirthDate.ToString("yyyy-MM-dd"), // NumAlbums = 0, // NumPhotos = 0 // }; // foreach(ServiceData.Models.UserCondition c in u.Conditions) // { // thisStat.NumAlbums++; // thisStat.NumPhotos += c.Photos.Count(); // } // toRet.Add(thisStat); // } // return Request.CreateResponse(HttpStatusCode.OK, toRet); //} // POST api/values public HttpResponseMessage Post([FromBody] Models.User newUser) { try { newUser.Email = User.Identity.Name; // Name = email if (newUser.BirthDate == null || (DateTime.UtcNow - newUser.BirthDate).TotalDays < 2) { newUser.BirthDate = DateTime.UtcNow.AddYears(-30); } Models.User returned = Models.User.ToAppModel(_userRepository.Insert(Models.User.ToServiceModel(newUser))); ServerUtils.LogTelemetryEvent(User.Identity.Name, "CreateUser"); PostLog("Users_Create", returned.Id); return(Request.CreateResponse(HttpStatusCode.OK, returned)); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, e)); } }
public void Post([FromBody] Production value) { _productionRepository.Insert(value); }