public async Task <IHttpActionResult> Edit(CustomClasses.API.Edit data)
        {
            if (await Resources.Database.User.Check.IsAdmin(data.auth))
            {
                List <object> tasks = new List <object>();
                if (data.api != null || data.api != null)
                {
                    //Edit settings
                    if (await Resources.Settings.Edit.All(data.api))
                    {
                        Global.GlobalMovieDisksList = await Resources.Settings.Get.ToObject(Resources.Settings.Type.Disks);

                        Global.GlobalServerSettings = await Resources.Settings.Get.ToObject(Resources.Settings.Type.Settings);

                        tasks.Add(data.api);
                    }
                }
                if (data.movie != null)
                {
                    //edit movie
                    if (await Resources.Database.Movie.Edit.Movie(data.movie))
                    {
                        tasks.Add(data.movie);
                    }
                }
                if (data.user != null)
                {
                    //edit user data
                    if (await Resources.Database.User.Edit.Data(data.user, data.groups))
                    {
                        tasks.Add(data.user);
                    }
                }


                if (tasks.Count > 0)
                {
                    return(Ok(tasks));
                }
            }
            return(Unauthorized());
        }
        public async Task <IHttpActionResult> RemoveUser(CustomClasses.API.Edit data)
        {
            if (await Resources.Database.User.Check.IsAdmin(data.auth))
            {
                var user = await Resources.Database.User.Get.ByGuid(data.user.unique_id);

                if (user != null)
                {
                    if (data.user.username == user.username)
                    {
                        return(Ok(await Resources.Database.User.Remove.User(user)));
                    }
                    return(BadRequest("User was not found or something else went wrong!"));
                }
                await History.Create(History.Type.API, new History_API()
                {
                    api_action = "User was not removed",
                    api_type   = "Error at User.Remove.User"
                });
            }
            return(Unauthorized());
        }
        public async Task <IHttpActionResult> NewUser(CustomClasses.API.Edit data)
        {
            if (await Resources.Database.User.Check.IsAdmin(data.auth))
            {
                var user = await Resources.Database.User.Get.ByUsername(data.user.username);

                if (user == null)
                {
                    if (data.user.password != null && data.user.email != null && data.groups.Id > 0)
                    {
                        return(Ok(await Resources.Database.User.Create.New(data.user, data.groups)));
                    }
                    return(BadRequest("not enough paramaters were set to create a user"));
                }
                await History.Create(History.Type.API, new History_API()
                {
                    api_action = "User was not created",
                    api_type   = "Error creating new user"
                });

                return(BadRequest());
            }
            return(Unauthorized());
        }