Beispiel #1
0
        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"));
            }
        }