Exemplo n.º 1
0
        public HttpResponseMessage postAnswer(int questionId)
        {
            try
            {
                var userId = HttpContext.Current.Session["id"];
                //var questionId = HttpContext.Current.Request.QueryString["questionId"];
                //var title = HttpContext.Current.Request.Params["title"];
                var      content   = HttpContext.Current.Request.Params["content"];
                DateTime time      = DateTime.Now;
                answer   newAnswer = new answer
                {
                    content         = (string)content,
                    user_id         = (int)userId,
                    file_request_id = questionId,
                    answer_time     = time
                };
                using (FileEntitiesFinal entity = new FileEntitiesFinal())
                {
                    file_request request = entity.file_request.Where(r => r.id == questionId).FirstOrDefault();
                    if (request == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.NotFound, "No such question"));
                    }


                    entity.answer.Add(newAnswer);
                    entity.SaveChangesAsync();
                    return(Request.CreateResponse(HttpStatusCode.OK, "Success"));
                }
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Fail to post"));
            }
        }
Exemplo n.º 2
0
        public string testFile(string code)
        {
            FileEntitiesFinal entity = new FileEntitiesFinal();
            user_share_file   temp   = entity.user_share_file.Where(f => f.code.Equals(code)).FirstOrDefault();

            return(temp.code);
        }
Exemplo n.º 3
0
 public HttpResponseMessage postQuestion()
 {
     Console.WriteLine("in");
     try
     {
         var userId = HttpContext.Current.Session["id"];
         //var questionId = HttpContext.Current.Request.QueryString["questionId"];
         var          title      = HttpContext.Current.Request.Params["title"];
         var          content    = HttpContext.Current.Request.Params["content"];
         DateTime     time       = DateTime.Now;
         file_request newRequest = new file_request()
         {
             title       = (string)title,
             description = (string)content,
             post_time   = time,
             status      = 1,
             user_id     = (int)userId
         };
         using (FileEntitiesFinal entity = new FileEntitiesFinal())
         {
             entity.file_request.Add(newRequest);
             entity.SaveChangesAsync();
             return(Request.CreateResponse(HttpStatusCode.OK, "Success"));
         }
     }
     catch (Exception e)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Fail to post"));
     }
 }
Exemplo n.º 4
0
        public user_share_file addFiles()
        {
            var newFile = new file()
            {
                name = "test222",
                type = 1,
                url  = "test222",
            };

            using (FileEntitiesFinal entities = new FileEntitiesFinal())
            {
                entities.Entry <file>(newFile).State = System.Data.Entity.EntityState.Added;
                entities.SaveChanges();
                entities.Entry(newFile);
                user_share_file newShare = new user_share_file()
                {
                    user_id = 2,
                    file_id = newFile.id,
                    code    = "1234"
                };
                entities.user_share_file.Add(newShare);
                entities.SaveChanges();


                return(newShare);
            }
        }
Exemplo n.º 5
0
 public bool isCodeExist(string code)
 {
     using (FileEntitiesFinal entity = new FileEntitiesFinal())
     {
         user_share_file user_Share_File = entity.user_share_file.Where(f => f.code == code).FirstOrDefault();
         return(user_Share_File != null);
     }
 }
Exemplo n.º 6
0
 // insert new use transaction
 public async Task registerUser(user newUser)
 {
     using (TransactionScope scope = new TransactionScope())
     {
         using (FileEntitiesFinal entity = new FileEntitiesFinal())
         {
             entity.user.Add(newUser);
             entity.SaveChanges();
         }
         scope.Complete();
     }
 }
Exemplo n.º 7
0
        // store the file into the database
        public async Task StoreFileToDB(file file)
        {
            // using transaction scope
            using (var scope = new TransactionScope())
            {
                using (FileEntitiesFinal entity = new FileEntitiesFinal())
                {
                    entity.file.Add(file);
                    await entity.SaveChangesAsync();

                    scope.Complete();
                }
            }
        }
Exemplo n.º 8
0
        public int login(int id, String password)
        {
            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                user currentUser = entity.user.Where(f => f.id == id).FirstOrDefault();
                if (currentUser == null)
                {
                    return(1);
                }
                else
                {
                    //Here should encrypt the password and compare!
                    byte[] psw = new byte[256];
                    if (getEncodeString(password, ref psw[0]) == -1)
                    {
                        return(2);
                    }
                    StringBuilder encodedPsw = new StringBuilder();
                    for (int i = 0; i < psw.Length; ++i)
                    {
                        if (psw[i] != 0)
                        {
                            encodedPsw.Append((char)psw[i]);
                        }
                        else
                        {
                            break;
                        }
                    }
                    password = encodedPsw.ToString();
                    if (password.Equals(currentUser.password))
                    {
                        HttpCookie cookie = new HttpCookie("user_cookie")
                        {
                            Value   = currentUser.id.ToString(),
                            Expires = DateTime.Now.AddHours(1)
                        };
                        HttpContext.Current.Response.Cookies.Add(cookie);
                        HttpContext.Current.Session["id"] = currentUser.id;

                        return(3);
                    }
                    else
                    {
                        return(4);
                    }
                }
            }
        }
Exemplo n.º 9
0
        // check whether the user existed

        private bool isUserExist(int userId)
        {
            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                user tempUser = entity.user.Where(u => u.id == userId).FirstOrDefault();
                if (tempUser == null)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
Exemplo n.º 10
0
 private bool isFileNameExisted(String name)
 {
     using (FileEntitiesFinal entity = new FileEntitiesFinal())
     {
         file tempFile = entity.file.Where(f => f.name.Equals(name)).FirstOrDefault();
         if (tempFile == null)
         {
             return(false);
         }
         else
         {
             return(true);
         }
     }
 }
Exemplo n.º 11
0
        public HttpResponseMessage getAnswerList(int id)
        {
            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                var answers = from a in entity.answer where a.file_request_id == id select new { a.content, a.user.name };

                List <dynamic> result = new List <dynamic>();
                foreach (var line in answers)
                {
                    result.Add(line);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);

                return(response);
            }
        }
Exemplo n.º 12
0
        public HttpResponseMessage searchFile(string key)
        {
            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                var fileList = from f in entity.file where f.name.Contains(key) && f.status == 1 select new { f.time, f.name, f.id, f.download_times, f.description, f.size, f.permission, f.type, f.user_share_file.FirstOrDefault().code };

                List <dynamic> result = new List <dynamic>();
                foreach (var line in fileList)
                {
                    result.Add(line);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);

                return(response);
            }
        }
Exemplo n.º 13
0
        public HttpResponseMessage getRequestList()
        {
            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                var questionList = from q in entity.file_request where q.status == 1 select new { q.title, q.user.name, q.id, time = q.post_time };

                List <dynamic> result = new List <dynamic>();
                foreach (var line in questionList)
                {
                    result.Add(line);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);

                return(response);
            }
        }
Exemplo n.º 14
0
        public HttpResponseMessage getDetail(int id)
        {
            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                var question = from q in entity.file_request where q.status == 1 && q.id == id select new { q.title, q.user.name, q.id, time = q.post_time, content = q.description };

                List <dynamic> result = new List <dynamic>();
                foreach (var line in question)
                {
                    result.Add(line);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);

                return(response);
            }
        }
Exemplo n.º 15
0
 public String downloadFile(int fileId)
 {
     using (FileEntitiesFinal entity = new FileEntitiesFinal())
     {
         file tempFile = entity.file.Where(f => f.id == fileId).FirstOrDefault();
         if (tempFile == null)
         {
             return("FileNotExist");
         }
         else
         {
             addUpDownloadTimes(tempFile.id);
             return(tempFile.url.ToString() + "?attname=");
         }
     }
 }
Exemplo n.º 16
0
        public HttpResponseMessage deleteFile(string id)
        {
            //string id = HttpContext.Current.Request.Params["fileId"].ToString();

            int fileId = 0;
            HttpResponseMessage response = null;

            //response.Headers.CacheControl = new System.Net.Http.Headers.CacheControlHeaderValue()
            //{
            //    MaxAge = TimeSpan.FromMinutes(20)
            //};
            try
            {
                fileId = Convert.ToInt32(id);
            } catch (Exception e)
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid File");

                return(response);
            }
            var userId = HttpContext.Current.Session["id"];

            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                var  files    = from f in entity.file where f.id == fileId select f;
                file tempFile = files.FirstOrDefault();
                if (tempFile.user_id != (int)userId)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Operation deny"));
                }
                if (tempFile.status == 100)
                {
                    response = Request.CreateResponse(HttpStatusCode.BadRequest, "File had been deleted, don't delete it again.");
                    return(response);
                }
                tempFile.status = 100;
                entity.Entry <file>(tempFile).State = System.Data.Entity.EntityState.Modified;
                entity.SaveChanges();

                string message = string.Format("Delete file {0} successfully!", tempFile.name.ToString());
                //response.Content = new StringContent(message, Encoding.Unicode);
                response = Request.CreateResponse(HttpStatusCode.OK, message);
                return(response);
            }
        }
Exemplo n.º 17
0
 private async void addUpFileNumbs(int userId)
 {
     using (TransactionScope scope = new TransactionScope())
     {
         using (FileEntitiesFinal entity = new FileEntitiesFinal())
         {
             user tempUser = entity.user.Where(u => u.id == userId).FirstOrDefault();
             if (tempUser == null)
             {
                 return;
             }
             tempUser.file_nums++;
             entity.user.Attach(tempUser);
             entity.Entry(tempUser).State = System.Data.Entity.EntityState.Modified;
             await entity.SaveChangesAsync();
         }
     }
 }
Exemplo n.º 18
0
        public HttpResponseMessage getUserFileType(int type)
        {
            var userId = HttpContext.Current.Session["id"];

            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                var fileList = from f in entity.file where f.user_id == (int)userId && f.type == type && f.status == 1 select new { f.time, f.name, f.id, f.download_times, f.description, f.size, f.permission, f.type, f.user_share_file.FirstOrDefault().code };

                List <dynamic> result = new List <dynamic>();
                foreach (var line in fileList)
                {
                    result.Add(line);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);

                return(response);
            }
        }
Exemplo n.º 19
0
        public HttpResponseMessage getMyQuestion()
        {
            var userId = HttpContext.Current.Session["id"];
            int id     = (int)userId;

            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                var question = from q in entity.file_request where q.user_id == id select new { q.title, q.user.name, q.id, time = q.post_time, content = q.description };

                List <dynamic> result = new List <dynamic>();
                foreach (var line in question)
                {
                    result.Add(line);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);

                return(response);
            }
        }
Exemplo n.º 20
0
        public HttpResponseMessage getMyAnswer()
        {
            var userId = HttpContext.Current.Session["id"];
            int id     = (int)userId;

            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                var answers = from a in entity.answer where a.user_id == id select new { a.content, title = a.file_request.title, time = a.file_request.post_time, questionId = a.file_request_id };

                List <dynamic> result = new List <dynamic>();
                foreach (var line in answers)
                {
                    result.Add(line);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);

                return(response);
            }
        }
Exemplo n.º 21
0
        private file getFileUrl(string code)
        {
            file result = null;

            using (FileEntitiesFinal entity = new FileEntitiesFinal())
            {
                user_share_file tempFile = entity.user_share_file.Where(f => f.code.Equals(code)).FirstOrDefault();
                if (tempFile != null)
                {
                    result = tempFile.file;
                }
                else
                {
                    result = null;
                }
            }

            return(result);
        }
Exemplo n.º 22
0
        //private string GetRandomString(int length)
        //{
        //    const string key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        //    if (length < 1)
        //    {
        //        return string.Empty;
        //    }
        //        Random random = new Random();
        //        byte[] buffer = new byte[8];
        //        ulong bit = 21;
        //        ulong result = 0;
        //        int index = 0;
        //        StringBuilder stringBuilder = new StringBuilder((length / 5 + 1) * 5);
        //        while (stringBuilder.Length <length)
        //        {
        //            random.NextBytes(buffer);
        //            buffer[5] = buffer[6] = buffer[7] = 0x00;
        //            result = BitConverter.ToUInt64(buffer, 0);
        //            while (result >0 && stringBuilder.Length <length)
        //            {
        //                index = (int)(bit & result);
        //                stringBuilder.Append(key[index]);
        //                result = result >> 5;
        //            }
        //        }
        //        return stringBuilder.ToString();
        // }

        private async void addUpDownloadTimes(int fileId)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                using (FileEntitiesFinal entity = new FileEntitiesFinal())
                {
                    file tempFile = entity.file.Where(f => f.id == fileId).FirstOrDefault();
                    if (tempFile == null)
                    {
                        return;
                    }
                    else
                    {
                        tempFile.download_times++;
                        entity.file.Attach(tempFile);
                        entity.Entry(tempFile).State = System.Data.Entity.EntityState.Modified;
                        await entity.SaveChangesAsync();
                    }
                }
                scope.Complete();
            }
        }
Exemplo n.º 23
0
        public HttpResponseMessage getUserFiles()
        {
            // TODO: need to login first
            var userId = HttpContext.Current.Session["id"];

            if (userId == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NonAuthoritativeInformation));
            }
            FileEntitiesFinal entity = new FileEntitiesFinal();

            var fileList = from f in entity.file where f.user_id == (int)userId && f.status == 1 orderby f.time descending select new { f.time, f.name, f.id, f.download_times, f.description, f.size, f.permission, f.type, f.user_share_file.FirstOrDefault().code };

            List <dynamic> result = new List <dynamic>();

            foreach (var line in fileList)
            {
                result.Add(line);
            }
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);

            return(response);
        }
Exemplo n.º 24
0
 public HttpResponseMessage getDownloadCode(int fileId)
 {
     using (FileEntitiesFinal entity = new FileEntitiesFinal())
     {
         var             userId          = HttpContext.Current.Session["id"];
         string          code            = "";
         user_share_file user_Share_File = entity.user_share_file.Where(u => u.file_id == fileId && u.user_id == (int)userId).FirstOrDefault();
         if (entity.file.Where(f => f.id == fileId).FirstOrDefault() == null)
         {
             return(Request.CreateResponse(HttpStatusCode.NotFound, "No such file"));
         }
         RandomCodeLib.CodeClass codeClass = new CodeClass();
         if (user_Share_File == null)
         {
             codeClass.getRandomCode(6, out code);
             while (isCodeExist(code))
             {
                 codeClass.getRandomCode(6, out code);
                 if (code.Length < 6)
                 {
                     return(Request.CreateResponse(HttpStatusCode.InternalServerError, "File to get the code"));
                 }
             }
             user_Share_File = new user_share_file {
                 user_id = (int)userId, file_id = fileId, code = code
             };
             entity.user_share_file.Add(user_Share_File);
             entity.SaveChangesAsync();
         }
         else
         {
             code = user_Share_File.code;
         }
         return(Request.CreateResponse(HttpStatusCode.OK, code));
     }
 }