Пример #1
0
        public JsonNetResult UploadFile(HttpPostedFileBase fileData, string entity)
        {
            try
            {
                if (fileData.ContentLength > 0)
                {
                    var file = JsonConvert.DeserializeObject <FileModel>(entity);
                    file.Name = System.IO.Path.GetFileName(fileData.FileName);

                    if (!db.Files.Any(f => f.Name.Equals(file.Name)))
                    {
                        var buffer = new byte[fileData.ContentLength];
                        fileData.InputStream.Read(buffer, 0, fileData.ContentLength);
                        Utilities.FileUtility.WriteToFile(file.Name, buffer);

                        db.Files.Add(file);
                        db.SaveChanges();

                        return(JsonNet.JsonOKRecord(file));
                    }
                    else
                    {
                        return(JsonNet.JsonError(String.Format(Resources.Global.Error_FileAlreadyExists, file.Name)));
                    }
                }
                else
                {
                    return(JsonNet.JsonError(Resources.Global.Error_UploadFailed));
                }
            }
            catch (Exception ex)
            {
                return(JsonNet.JsonError(ex.Message + '\n' + ex.StackTrace));
            }
        }
Пример #2
0
        private JsonNetResult CreateUser(User user)
        {
            try
            {
                string prop = null;
                ModelState.Remove("Password");
                if (!ModelState.IsValid)
                {
                    return(JsonNet.JsonError(Resources.Global.General_ReceivedInvalidData));
                }
                if (!IsUnique(user, ref prop))
                {
                    return(JsonNet.JsonError(String.Format(Resources.Global.General_PropertyIsNotUnique, prop)));
                }

                user.Salt = Guid.NewGuid().ToString();
                string hash = Utilities.General.HashString(user.NewPassword + user.Salt);
                user.Password = hash;

                repo.Add(user);
                repo.Save();
                return(JsonNet.JsonOKRecord(user));
            }
            catch (Exception ex)
            {
                return(JsonNet.JsonError(ex.Message + '\n' + ex.StackTrace));
            }
        }
Пример #3
0
        private JsonNetResult EditUser(User user)
        {
            try
            {
                string prop = null;

                ModelState.Remove("Password");

                if (!ModelState.IsValid)
                {
                    return(JsonNet.JsonError(Resources.Global.General_ReceivedInvalidData));
                }
                if (!IsUnique(user, ref prop, true))
                {
                    return(JsonNet.JsonError(String.Format(Resources.Global.General_PropertyIsNotUnique, prop)));
                }

                var oldUser = base.db.Users.AsNoTracking().Where(u => u.ID == user.ID).First();
                user.Password = oldUser.Password;
                user.Salt     = oldUser.Salt;

                if (!String.IsNullOrEmpty(user.EditPassword))
                {
                    string hash = Utilities.General.HashString(user.EditPassword + user.Salt);
                    user.Password = hash;
                }
                else
                {
                    user.EditPassword = null;
                }

                // Prevent validation errors
                user.NewPassword = "******";

                repo.Edit(user);
                repo.Save();

                return(JsonNet.JsonOKRecord(user));
            }
            catch (Exception ex)
            {
                return(JsonNet.JsonError(ex.Message + '\n' + ex.StackTrace));
            }
        }
Пример #4
0
        public JsonNetResult GetDriveInfo(string path)
        {
            bool  success;
            ulong freeBytes, totalBytes, totalFreeBytes;

            success = GetDiskFreeSpaceEx(path, out freeBytes,
                                         out totalBytes, out totalFreeBytes);

            if (success)
            {
                return(JsonNet.JsonOKRecord(new Drive()
                {
                    FreeSpace = General.BytesToGigaBytes(freeBytes),
                    TotalSpace = General.BytesToGigaBytes(totalBytes),
                    Name = path,
                    VolumeLabel = path
                }));
            }
            else
            {
                return(JsonNet.JsonError("Could not get drive info"));
            }
        }