public HttpResponseMessage UnsubscribeChannels(string sessionKey) { var rep = new DbChannelRepository(db); int userId = db.Set <User>().Where(u => u.SessionKey == sessionKey).Select(u => u.UserID).FirstOrDefault(); var result = rep.GetAllUnsubscribeChannels(userId); List <ChannelModel> all = new List <ChannelModel>(); foreach (var res in result) { ChannelModel newChannel = new ChannelModel { ChannelName = res.ChannelName, FirstUserId = res.UserID, SecondUserId = res.SecondUserID, FirstUsername = db.Set <User>().Where(u => u.UserID == res.UserID).Select(u => u.Username).FirstOrDefault(), SecondUsername = db.Set <User>().Where(u => u.UserID == res.SecondUserID).Select(u => u.Username).FirstOrDefault(), }; all.Add(newChannel); } var responseMsg = Request.CreateResponse(HttpStatusCode.OK, all); return(responseMsg); }
public async Task <HttpResponseMessage> Post(string sessionKey) { string folderName = @"Uploads"; string PATH = HttpContext.Current.Server.MapPath("~/" + folderName); string rootUrl = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, String.Empty); if (Request.Content.IsMimeMultipartContent()) { var streamProvider = new MultipartFormDataStreamProvider(PATH); try { // Read the form data. await Request.Content.ReadAsMultipartAsync(streamProvider); IQueryable <User> users = this.userRepository.GetAll(); var result = from u in users where u.SessionKey == sessionKey select u; User dbUser = result.FirstOrDefault(); db.Set <User>().Attach(dbUser); var uploader = new DropboxUploader(); var avatarUrl = ""; foreach (MultipartFileData file in streamProvider.FileData) { string fileName = file.LocalFileName; var url = uploader.UploadFileToDropBox(fileName.Trim(), file.Headers.ContentDisposition.FileName.Replace("\"", "")); avatarUrl = url; break; } dbUser.Avatar = avatarUrl; db.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, dbUser)); } catch (System.Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e)); } } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); } }