示例#1
0
        /// <summary>
        /// Creates the API request to add a new client to the database, and handles the response
        /// </summary>
        /// <param name="client">Client as a JSON string to be added to the system</param>
        private void AddClientToDatabase(string client)
        {
            APIRequests request = new APIRequests();

            string url = $"{request.allClientDetailsEndpoint}";

            string response = request.SendPOSTRequestDataInBody(url, client);

            //logger.Info(response);

            if (response.Contains("Successfully added new client"))
            {
                bool successfullyAdded = AddClientToClientDb(response);

                if (successfullyAdded)
                {
                    MessageBox.Show("Successfully added client to the system");
                }
                else
                {
                    MessageBox.Show("Client succesfully added to main database, but failed to add it to the client login database");
                }
            }
            else
            {
                MessageBox.Show("Something went wrong");
            }
        }
        private void MarkExericiseAsInactive()
        {
            int exerciseId = GetExericseIdFromDropdown();

            if (exerciseId == 0)
            {
                MessageBox.Show("Please pick an exercise from the dropdown");
            }
            else
            {
                APIRequests request = new APIRequests();

                string url = $"{request.singleExercisesEndpoint}{exerciseId}";

                string response = request.SendDeleteRequestData(url);

                if (response.Contains("Successfully marked the exercise inactive"))
                {
                    MessageBox.Show("Successfully marked the exercise inactive");

                    // Now clear the table
                    dataGridViewExercises.DataSource = "";

                    // Refresh the dropdown
                    Exercise.GetExercises();

                    PopulateDropdownMenu();
                }
                else
                {
                    MessageBox.Show("Sorry, couldn't mark the exercise as inactive");
                }
            }
        }
示例#3
0
        public bool AddClientToClientDb(string responseFromApi)
        {
            string response = responseFromApi;

            AddClientResponse addClientResponse = new AddClientResponse(response);

            int id = Convert.ToInt32(addClientResponse.clientId);

            ClientDBPerson clientDBPerson = new ClientDBPerson("*****@*****.**", "bugs", id);

            var json = JsonConvert.SerializeObject(clientDBPerson);

            APIRequests request = new APIRequests();

            var responseFromClientDb = request.SendPOSTRequestDataInBodyNoAuth(request.clientSiteRegUrl, json);

            if (responseFromClientDb.Contains("success"))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public static void TestClientDb()
        {
            APIRequests request = new APIRequests();

            ClientDBPerson clientDBPerson2 = new ClientDBPerson("*****@*****.**", "bugs", 1);

            var json2 = JsonConvert.SerializeObject(clientDBPerson2);

            var responseFromApi = request.SendPOSTRequestDataInBodyNoAuth("http://*****:*****@t.com", "bugs", id);

            var json = JsonConvert.SerializeObject(clientDBPerson);

            //logger.Info(json);

            var response = request.SendPOSTRequestDataInBodyNoAuth(request.clientSiteRegUrl, json);

            Console.WriteLine(response);
        }
示例#5
0
    public void SendRequest(RequestType requestCode, string requestData, bool isShowErrorMessage, System.Action <RequestType, string, bool, string> callbackMethod = null, WWWForm formData = null, bool isGetMethod = false)
    {
        APIRequests request = new APIRequests();

        if (formData != null)
        {
            request.pdata = formData.data;
        }
        else
        {
            if (!string.IsNullOrEmpty(requestData))
            {
                request.pdata = System.Text.Encoding.ASCII.GetBytes(requestData.ToCharArray());
            }
            else
            {
                request.pdata = null;
            }
        }

        request.url                = GameConstants.GAME_URLS[(int)requestCode];
        request.requestCode        = requestCode;
        request.callbackMethod     = callbackMethod;
        request.isShowErrorMessage = isShowErrorMessage;

        request.retryCount = 0;

#if DEBUG_LOG
        Debug.Log("Calling API sending data requestCode = " + request.requestCode + "  data = " + requestData + "  url = " + request.url);
        Debug.LogError("URL ===> " + request.url);
#endif

        SendRequestToServer(request);
    }
        private void buttonSaveChanges_Click(object sender, EventArgs e)
        {
            // 1. Get details
            int    muscleGroupId   = Convert.ToInt32(textBoxId.Text);
            string muscleGroupName = textBoxEditName.Text;

            // 2. Create object
            MuscleGroup muscleGroup = new MuscleGroup(muscleGroupId, muscleGroupName);

            // 3. Convert to JSON
            var jsonData = JsonConvert.SerializeObject(muscleGroup);

            // 4. Create request, send it, and get response
            APIRequests request = new APIRequests();

            string url = $"{request.allMuscleGroupsEndpoint}/{muscleGroupId}/{muscleGroupName}";

            var response = request.SendPathRequestData(url);

            // 5. Handle response
            if (response.Contains("Successfully"))
            {
                MessageBox.Show("Successfully modified the muscle group");

                textBoxEditName.Text = "";

                ResetMuscleGroupView();
            }
            else
            {
                MessageBox.Show("Something went wrong, and we couldn't edit the muscle group");
            }
        }
示例#7
0
    private IEnumerator WaitForAPIResponse(APIRequests request)
    {
        yield return(new WaitForSeconds(GameConstants.API_TIME_OUT_LIMIT));

        StopCoroutine(request.requestMethod);
        SendRequestToServer(request);
    }
        public static void AuthToken()
        {
            APIRequests.environment = APIRequests.liveEnvironment;

            APIRequests request = new APIRequests();

            request.GetAuthToken();

            Console.WriteLine(APIRequests.savedToken.access_Token.ToString());
        }
        private string AddTrainingSessionTodatabase(string session)
        {
            APIRequests request = new APIRequests();

            string url = request.allTrainingSessionsEndpoint;

            string response = request.SendPOSTRequestDataInBody(url, session);

            return(response);
        }
        /// <summary>
        /// Sending the patch request to the server for editing an exercise
        /// </summary>
        /// <param name="exercise">Name of the exercise</param>
        /// <param name="exerciseId">ID of the exercise being patched</param>
        private void SendPatchExerciseRequest(string exercise, string exerciseId)
        {
            APIRequests request = new APIRequests();

            string url = $"{request.singleExercisesEndpoint}{exerciseId}";

            string response = request.SendPatchRequestDataInBody(url, exercise);

            // TODO: Change this to show either a generic success or error message
            MessageBox.Show(response);
        }
示例#11
0
        public void T1000_Get_Valid_Auth_Token()
        {
            APIRequests.environment = APIRequests.liveEnvironment;

            APIRequests request = new APIRequests();

            request.GetAuthToken();

            string token = APIRequests.savedToken.access_Token.ToString();

            Assert.AreEqual(token, "hi");
        }
        public void GetWorkoutInformation(int id)
        {
            APIRequests request = new APIRequests();

            string url = $"{request.getSpecificWorkoutHistoryItem}{id}";

            var response = request.GetRequests(url);

            //logger.Info(response);

            ParseWebResponse(response);
        }
        public static void testEndpoint()
        {
            Console.WriteLine("Now checking endpoint");
            APIRequests token = new APIRequests();

            string jsonData = token.GetRequests("https://frozen-meadow-69055.herokuapp.com/clients/1/workouthistory");


            try
            {
                JArray jsonArray = JArray.Parse(jsonData);
                Console.WriteLine("jarray count: " + jsonArray.Count);

                Console.WriteLine(jsonArray);

                for (int i = 0; i < jsonArray.Count; i++)
                {
                    JObject data = JObject.Parse(jsonArray[i].ToString());

                    //Client client = data.ToObject<Client>();

                    //TrainingSessions trainingSessions = JObject.Parse(jsonArray[i].ToString())

                    //Console.WriteLine("\nNow writing a random value");
                    //Console.WriteLine("State: " + client.state);
                    //Console.WriteLine("First Name: " + client.firstName);
                    // Console.WriteLine("Trainingsession: " + client.assigned_training_sessions);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);

                Console.WriteLine(jsonData);
                return;
            }

            //// Option #2
            //JArray array = JArray.Parse(jsonData);
            //foreach (JObject obj in array.Children<JObject>())
            //{

            //    foreach (JProperty singleProp in obj.Properties())
            //    {
            //        string name = singleProp.Name;
            //        string value = singleProp.Value.ToString();
            //        Console.WriteLine("Name: " + name + "\nValue: " + value);
            //        //Do something with name and value
            //        //System.Windows.MessageBox.Show("name is "+name+" and value is "+value);
            //    }
            //}
        }
示例#14
0
    private IEnumerator WaitForServerResponse(APIRequests request)
    {
        if (!IsInternetAvailable())
        {
            if (request.isShowErrorMessage)
            {
                request.callbackMethod(request.requestCode, "", request.isShowErrorMessage, "Internet Connection not available.");
            }

            yield break;
        }

        request.timerMethod = WaitForAPIResponse(request);
        Dictionary <string, string> headers = new Dictionary <string, string>();

        headers.Add("Content-Type", "application/json");
        //Debug.LogError(request.url);
        WWW www = new WWW(request.url, request.pdata, headers);

        StartCoroutine(request.timerMethod);

        yield return(www);

        StopCoroutine(request.timerMethod);

#if DEBUG_LOG
        Debug.Log("Response Found requestCode = " + request.requestCode + "    data = " + www.text);
#endif


        if (request.callbackMethod != null)
        {
            string errorMessage = "";

            if (www.error != null)
            {
                errorMessage = www.error;
            }
            else if (string.IsNullOrEmpty(www.text))
            {
                errorMessage = "Server response not found, please check your internet connection is working properly";
            }
            //Debug.Log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   " + www.text);
            request.callbackMethod(request.requestCode, www.text, request.isShowErrorMessage, errorMessage);
        }

        www.Dispose();
        www = null;
    }
示例#15
0
        private void buttonDeleteWorkout_Click(object sender, EventArgs e)
        {
            DialogResult result1 = MessageBox.Show("This will remove the workout from your history, and it cannot be recovered.  Do you wish to continue?",
                                                   "This will delete a workout",
                                                   MessageBoxButtons.YesNo);

            if (result1.ToString() == "No")
            {
                return;
            }

            int workoutId = 0;

            foreach (DataGridViewRow item in this.dataGridViewWorkoutHistory.SelectedRows)
            {
                // TODO: Be able to select the session to remove it
                string workoutIdFromGrid = Convert.ToString(item.Cells[0].Value);

                workoutId = Convert.ToInt32(workoutIdFromGrid);
            }

            if (workoutId == 0)
            {
                MessageBox.Show("Please select an entire row");
            }
            else
            {
                APIRequests request = new APIRequests();

                string url = $"{request.getSpecificWorkoutHistoryItem}{workoutId}";

                logger.Info(url);

                string response = request.SendDeleteRequestData(url);

                if (response.Contains("Successfully removed workout from client"))
                {
                    MessageBox.Show("Successfully removed workout from client");

                    GetClientInformation();
                }
                else
                {
                    logger.Error(response);
                    MessageBox.Show("Something went wrong and workout not removed");
                }
            }
        }
示例#16
0
    void onActivityResult(string theString)
    {
        Debug.Log("onActivityResult in Unity is Called: " + theString);

        string[] result   = theString.Split('=');
        string   authCode = result [1];

        result   = authCode.Split('&');
        authCode = result [0];        //authCode is the authentication code from Moves.

        Debug.Log("the Code is: " + authCode);
        PlayerPrefs.SetString("CODE", authCode);
        APIRequests APIObj = GameObject.Find("APIRequests").GetComponent <APIRequests> ();

        APIObj.callGetToken();
    }    //end of onActivityResult
示例#17
0
        // TODO Chamar GetAtualizacoes antes de procurar episodios para baixar
        private void AtualizarConteudo()
        {
            var worker = new BackgroundWorker();

            worker.DoWork += async(s, e) =>
            {
                ProcurarNovosEpisodiosBaixados();

                AlterarStatusEpisodios();

                ProcurarEpisodiosParaBaixar();

                await APIRequests.GetAtualizacoes();
            };

            worker.RunWorkerAsync();
        }
        /// <summary>
        /// Method for creating the request and sending it off to the server to add a new exercise
        /// </summary>
        /// <param name="exercise">Exercise object as a JSON string</param>
        private static void AddExerciseToDatabase(string exercise)
        {
            APIRequests request = new APIRequests();

            string url = $"{request.allExercisesEndpoint}";

            string response = request.SendPOSTRequestDataInBody(url, exercise);

            logger.Info(response);

            if (response.Contains("Successfully added new exercise"))
            {
                MessageBox.Show("Successfully added exercise to the system");
            }
            else
            {
                MessageBox.Show("Something went wrong");
            }
        }
        private void buttonAddNew_Click(object sender, EventArgs e)
        {
            string name = textBoxName.Text;
            bool   nameAlreadyExists = false;

            if (name == "")
            {
                MessageBox.Show("Please fill out the name textbox");
                return;
            }

            // Check if the name exists
            foreach (var muscleGroup in MuscleGroup.muscleGroupList)
            {
                if (name == muscleGroup.muscle_group_details)
                {
                    MessageBox.Show("Muscle Groups already exists.  Please pick a new name");
                    nameAlreadyExists = false;
                    break;
                }
            }

            // If the name is new, send it to the API
            if (!nameAlreadyExists)
            {
                APIRequests request = new APIRequests();

                string url = $"{request.allMuscleGroupsEndpoint}/{name}";

                var response = request.SendPostRequestData(url);

                if (response.Contains("Successfully"))
                {
                    MessageBox.Show("Sucessfully added a new muscle group");

                    textBoxName.Text = "";

                    ResetMuscleGroupView();
                }
            }
        }
示例#20
0
    private void SendRequestToServer(APIRequests request)
    {
        if (request.retryCount >= GameConstants.API_RETRY_LIMIT)
        {
            Debug.Log("API retry count exceeded api code = " + request.requestCode);

            if (request.callbackMethod != null)
            {
                request.callbackMethod(request.requestCode, "", request.isShowErrorMessage, "Retry count exceeded.");
            }
            else
            {
                Debug.LogError("Call back method is null ");
            }
            return;
        }

        ++request.retryCount;
        request.requestMethod = WaitForServerResponse(request);
        StartCoroutine(request.requestMethod);
    }
        private void GetInformation()
        {
            APIRequests request = new APIRequests();

            var url = request.allMuscleGroupsEndpoint;

            var response = request.GetRequests(url);

            if (response == "")
            {
                MessageBox.Show("Sorry, can't connect to server");
            }
            else
            {
                Thread muscleGroups     = new Thread(() => MuscleGroup.GetMusclegroups());
                Thread exercises        = new Thread(() => Exercise.GetExercises());
                Thread clients          = new Thread(() => Client.GetClients());
                Thread trainingSessions = new Thread(() => TrainingSession.GetAllTrainingSessions());

                exercises.Start();
                muscleGroups.Start();
                clients.Start();
                trainingSessions.Start();

                exercises.Join();
                muscleGroups.Join();
                clients.Join();
                trainingSessions.Join();

                buttonClientManagement.Enabled     = true;
                buttonClientManagement.BackColor   = Color.LightGreen;
                buttonClientManagement.Enabled     = true;
                buttonExerciseManagement.BackColor = Color.LightGreen;
                buttonExerciseManagement.Enabled   = true;
                buttonSessionManagement.Enabled    = true;
                buttonSessionManagement.BackColor  = Color.LightGreen;
                buttonMuscleGroup.Enabled          = true;
                buttonMuscleGroup.BackColor        = Color.LightGreen;
            }
        }
示例#22
0
        private void buttonSaveEdits_Click(object sender, EventArgs e)
        {
            string clientId  = labelClientIdText.Text;
            string firstName = textBoxFirstName.Text;
            string lastName  = textBoxLastName.Text;
            string address   = textBoxAddress.Text;
            string city      = textBoxCity.Text;
            string zipCode   = textBoxZipCode.Text;
            string email     = textBoxEmail.Text;
            string state     = textBoxState.Text;
            string active    = checkBoxActive.Checked.ToString();
            string phone     = textBoxPhone.Text;

            // TODO:  Compare old values and new values.  If changed, add to an array and convert it to json to send
            Client client = new Client(clientId, firstName, lastName, active, address, city, state, zipCode, phone, email);

            string clientAsJson = JsonConvert.SerializeObject(client);

            //logger.Info(clientAsJson);

            APIRequests request = new APIRequests();

            string url = $"{request.singleClientDetailEndpoint}{clientId}";

            string response = request.SendPatchRequestDataInBody(url, clientAsJson);

            if (response.Contains("Successfully modified the client"))
            {
                MessageBox.Show("Successfully modified the client");
                this.Close();
            }
            else
            {
                MessageBox.Show("Something went wrong");
            }
        }
示例#23
0
        /// <summary>
        /// Marks a given client as inactive in the system
        /// </summary>
        private void MarkClientAsInactive()
        {
            int clientId = GetClientIdFromDropdown();

            if (clientId == 0)
            {
                MessageBox.Show("Please pick a client");
            }
            else
            {
                Client client = new Client();
                client.active = "false";

                string clientAsJson = JsonConvert.SerializeObject(client);

                APIRequests request = new APIRequests();

                string url = $"{request.singleClientDetailEndpoint}{clientId}";

                string response = request.SendPatchRequestDataInBody(url, clientAsJson);

                MessageBox.Show(response);
            }
        }
        /// <summary>
        /// This is called when the user wants to save their changes
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonSave_Click(object sender, EventArgs e)
        {
            string id          = textBoxSessionId.Text;
            string name        = textBoxName.Text;
            string description = textBoxDescription.Text;
            string sets        = textBoxTrainingSessionSets.Text;
            string reps        = textBoxTrainingSessionReps.Text;
            string active      = checkBoxActive.Checked.ToString();

            TrainingSession newSession = new TrainingSession(id, name, description, sets, reps, active);

            // Convert the object to JSON
            string jsonSession = JsonConvert.SerializeObject(newSession);

            logger.Debug(jsonSession);

            //TODO: Finish up modifying the training session.  Make sure the methods are created first
            APIRequests request = new APIRequests();

            string url = $"{request.singleTrainingSessionEndpoint}{id}";

            logger.Debug(url);

            // Patch the training session
            var response = request.SendPatchRequestDataInBody(url, jsonSession);

            // Check the resulting json for results
            if (response.Contains("Successfully"))
            {
                // Check for new exercises to be added to the training session

                CheckForNewSessions();

                if (exercisesToAdd.Count != 0)
                {
                    // Foreach, send patch request
                    foreach (var exercise in exercisesToAdd)
                    {
                        url = $"{request.singleTrainingSessionEndpoint}{exercise.Value}/exercise/{exercise.Key}";

                        var exerciseResponse = request.SendPostRequestData(url);

                        if (exerciseResponse.Contains("error"))
                        {
                            MessageBox.Show(exerciseResponse);
                            logger.Error(exerciseResponse);
                        }
                    }
                }


                // Check for removed exericeses
                CheckForDeletedSessions();

                if (exercisesToremove.Count != 0)
                {
                    foreach (var exercise in exercisesToremove)
                    {
                        url = $"{request.singleTrainingSessionEndpoint}{exercise.Value}/exercise/{exercise.Key}";

                        var exerciseResponse = request.SendDeleteRequestData(url);

                        if (exerciseResponse.Contains("error"))
                        {
                            MessageBox.Show(exerciseResponse);
                            logger.Error(exerciseResponse);
                        }
                    }
                }


                MessageBox.Show("Completed modifying the training session");

                this.Close();
            } // End of if statement
            else
            {
                MessageBox.Show("Couldn't modify the training session");
            }
        }
示例#25
0
 public void Start()
 {
     APIObj      = GameObject.Find("APIRequests").GetComponent <APIRequests> ();
     jsonDataObj = GameObject.Find("JSONDataObject").GetComponent <JSONDataObject> ();
 }
        private void buttonSave_Click(object sender, EventArgs e)
        {
            // TODO: This

            // Save user entered values as a new trainingSession
            string name        = textBoxName.Text;
            string description = textBoxDescription.Text;
            string sets        = textBoxTrainingSessionSets.Text;
            string reps        = textBoxTrainingSessionReps.Text;
            string active      = checkBoxActive.Checked.ToString().ToLower();

            TrainingSession newSession = new TrainingSession(name, description, sets, reps, active);

            // Convert the object to JSON
            string jsonSession = JsonConvert.SerializeObject(newSession);

            logger.Info(jsonSession);

            // Insert it into the database. Get the ID back from the tool
            var response = AddTrainingSessionTodatabase(jsonSession);

            if (response.Contains("Successfully added new training session"))
            {
                dynamic trainingSessionResponse = JObject.Parse(response);

                logger.Info("Response: " + trainingSessionResponse);

                var newSessionId = trainingSessionResponse.trainingSessionId;

                //logger.Info(newSessionId);

                //// Convert the training sessions

                string exercisesInTrainingSession = JsonConvert.SerializeObject(Exercise.exercisesForTrainingSession);

                //logger.Info("New exercises");
                //logger.Info(exercisesInTrainingSession);

                APIRequests request = new APIRequests();

                bool exerciseErrors = false;

                foreach (var exercise in Exercise.exercisesForTrainingSession)
                {
                    string exerciseId = exercise.exercise_id;

                    string url = $"{request.singleTrainingSessionEndpoint}{newSessionId}/exercise/{exerciseId}";
                    logger.Info(url);

                    string exerciseResponse = request.SendPostRequestData(url);

                    if (!exerciseResponse.Contains("Successfully"))
                    {
                        exerciseErrors = true;
                        logger.Error(exerciseResponse);
                    }
                }

                if (exerciseErrors)
                {
                    MessageBox.Show("There were errors inserting the exercises.  Please check the log files");
                }
                else
                {
                    TrainingSession.GetAllTrainingSessions();

                    MessageBox.Show("Successfully created the new training session");
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("Something went wrong in saving the training session.");
                logger.Error(response);
            }
        }
示例#27
0
        public void LoadConteudos(Enums.TipoConteudo contentType)
        {
            var frmBarraProgresso = new frmBarraProgresso();

            frmBarraProgresso.BarraProgressoViewModel.sDsTarefa      = "Procurando pastas...";
            frmBarraProgresso.BarraProgressoViewModel.Worker.DoWork += (sender, e) =>
            {
                var conteudos = new ObservableCollection <Video>();

                var seriesService = App.Container.Resolve <SeriesService>();

                switch (contentType)
                {
                case Enums.TipoConteudo.AnimeFilmeSérie:
                    DirectoryInfo[] dirSeries = Helper.retornarDiretoriosSeries();
                    DirectoryInfo[] dirAnimes = Helper.retornarDiretoriosAnimes();
                    DirectoryInfo[] dirFilmes = Helper.retornarDiretoriosFilmes();
                    frmBarraProgresso.BarraProgressoViewModel.dNrProgressoMaximo = (dirSeries != null
                                                                                            ? dirSeries.Length
                                                                                            : 0) + (dirAnimes != null
                                                                                                        ? dirAnimes
                                                                                                    .Length
                                                                                                        : 0) +
                                                                                   (dirFilmes != null
                                                                                            ? dirFilmes.Length
                                                                                            : 0);

                    if (dirSeries != null)
                    {
                        foreach (DirectoryInfo dir in dirSeries)
                        {
                            frmBarraProgresso.BarraProgressoViewModel.dNrProgressoAtual++;
                            frmBarraProgresso.BarraProgressoViewModel.sDsTexto = dir.FullName;
                            if (!seriesService.VerificarSeExiste(dir.FullName))
                            {
                                List <Serie> lstSeries = APIRequests.GetSeries(dir.Name);
                                if (lstSeries.Count == 0)
                                {
                                    var conteudo = new Serie();
                                    conteudo.nIdTipoConteudo  = Enums.TipoConteudo.Série;
                                    conteudo.sDsPasta         = dir.FullName;
                                    conteudo.bFlNaoEncontrado = true;
                                    conteudos.Add(conteudo);
                                }
                                else if (lstSeries.Count > 0 && !seriesService.VerificarSeExiste(lstSeries[0].nCdApi))
                                {
                                    Serie conteudo = lstSeries[0];
                                    conteudo.nIdTipoConteudo = Enums.TipoConteudo.Série;
                                    conteudo.sDsPasta        = dir.FullName;
                                    conteudo.bFlSelecionado  = true;

                                    if (!string.IsNullOrWhiteSpace(conteudo.sAliases))
                                    {
                                        foreach (string item in conteudo.sAliases.Split('|'))
                                        {
                                            var alias = new SerieAlias(item);
                                            if (conteudo.lstSerieAlias == null)
                                            {
                                                conteudo.lstSerieAlias = new ObservableCollection <SerieAlias>();
                                            }
                                            conteudo.lstSerieAlias.Add(alias);
                                        }
                                    }

                                    conteudos.Add(conteudo);
                                }
                            }
                        }
                    }

                    if (dirAnimes != null)
                    {
                        foreach (DirectoryInfo dir in dirAnimes)
                        {
                            frmBarraProgresso.BarraProgressoViewModel.dNrProgressoAtual++;
                            frmBarraProgresso.BarraProgressoViewModel.sDsTexto = dir.FullName;
                            if (!seriesService.VerificarSeExiste(dir.FullName))
                            {
                                List <Serie> lstSeries = APIRequests.GetSeries(dir.Name);
                                if (lstSeries == null || lstSeries.Count == 0)
                                {
                                    var conteudo = new Serie();
                                    conteudo.nIdTipoConteudo  = Enums.TipoConteudo.Anime;
                                    conteudo.sDsPasta         = dir.FullName;
                                    conteudo.bFlNaoEncontrado = true;
                                    conteudos.Add(conteudo);
                                }
                                else if (lstSeries.Count > 0 && !seriesService.VerificarSeExiste(lstSeries[0].nCdApi))
                                {
                                    Serie conteudo = lstSeries[0];
                                    conteudo.nIdTipoConteudo = Enums.TipoConteudo.Anime;
                                    conteudo.sDsPasta        = dir.FullName;
                                    conteudo.bFlSelecionado  = true;

                                    if (!string.IsNullOrWhiteSpace(conteudo.sAliases))
                                    {
                                        foreach (string item in conteudo.sAliases.Split('|'))
                                        {
                                            var alias = new SerieAlias(item);
                                            if (conteudo.lstSerieAlias == null)
                                            {
                                                conteudo.lstSerieAlias = new ObservableCollection <SerieAlias>();
                                            }
                                            conteudo.lstSerieAlias.Add(alias);
                                        }
                                    }

                                    conteudos.Add(conteudo);
                                }
                            }
                        }
                    }

                    //if (dirFilmes != null) {// TODO Filmes
                    //    foreach (var dir in dirFilmes)
                    //{
                    //        if (!DatabaseHelper.VerificaSeExiste(dir.FullName))
                    //        {
                    //            filmes = await Helper.API_PesquisarConteudoAsync(dir.Name, Enums.TipoConteudo.movie.ToString(), false);
                    //            if (filmes.Count != 0 && !DatabaseHelper.VerificaSeExiste(filmes[0].Video.ids.trakt))
                    //                conteudos.Add(new ConteudoGrid { Nome = filmes[0].Video.title, Pasta = dir.FullName, TipoConteudo = Enums.TipoConteudo.movie, TraktSlug = filmes[0].Video.ids.slug, IsSelected = true });
                    //        }
                    //    }
                    //}
                    break;

                default:
                    throw new InvalidEnumArgumentException();
                }

                lstConteudos = conteudos;

                if (lstConteudos.Count == 0)
                {
                    Helper.MostrarMensagem("Nenhum novo conteúdo foi encontrado.", Enums.eTipoMensagem.Informativa);
                }

                //Conteudos.Clear();

                //foreach (var item in conteudos)
                //{
                //    Conteudos.Add(item);
                //}
            };
            frmBarraProgresso.BarraProgressoViewModel.Worker.RunWorkerAsync();
            frmBarraProgresso.ShowDialog(Owner);
        }
            public void Execute(object parameter)
            {
                var ProcurarConteudoViewModel = parameter as ProcurarConteudoViewModel;
                var frmBarraProgresso         = new frmBarraProgresso();

                frmBarraProgresso.BarraProgressoViewModel.dNrProgressoMaximo =
                    ProcurarConteudoViewModel.lstConteudos.Where(x => x.bFlSelecionado).Count();
                frmBarraProgresso.BarraProgressoViewModel.sDsTarefa      = "Salvando...";
                frmBarraProgresso.BarraProgressoViewModel.Worker.DoWork += (s, ev) =>
                {
                    var seriesService = App.Container.Resolve <SeriesService>();
                    //if (ProcurarConteudoViewModel.lstConteudos.Where(x => x.bFlSelecionado && !x.bFlNaoEncontrado).Count() == 0)
                    //{
                    //    Helper.MostrarMensagem("Para realizar a operação, selecione ao menos um registro.", Enums.eTipoMensagem.Alerta);
                    //}
                    foreach (Video item in ProcurarConteudoViewModel.lstConteudos)
                    {
                        if (item.bFlSelecionado && !item.bFlNaoEncontrado)
                        {
                            switch (item.nIdTipoConteudo)
                            {
                            case Enums.TipoConteudo.Série:
                            case Enums.TipoConteudo.Anime:
                            {
                                frmBarraProgresso.BarraProgressoViewModel.sDsTexto = "Salvando \"" + item.sDsTitulo +
                                                                                     "\" (" +
                                                                                     (frmBarraProgresso
                                                                                      .BarraProgressoViewModel
                                                                                      .dNrProgressoAtual + 1) +
                                                                                     "/" +
                                                                                     frmBarraProgresso
                                                                                     .BarraProgressoViewModel
                                                                                     .dNrProgressoMaximo +
                                                                                     ")...";

                                if (item.nIdEstado != Enums.Estado.Completo)
                                {
                                    Serie serie =
                                        APIRequests.GetSerieInfoAsync(item.nCdApi,
                                                                      Properties.Settings.Default
                                                                      .pref_IdiomaPesquisa).Result;
                                    serie.nIdTipoConteudo = item.nIdTipoConteudo;
                                    serie.sDsPasta        = item.sDsPasta;
                                    serie.sAliases        = item.sAliases;
                                    serie.lstSerieAlias   = item.lstSerieAlias;
                                    serie.sDsTitulo       = item.sDsTitulo;
                                    serie.SetEstadoEpisodio();
                                    seriesService.Adicionar(serie);
                                }
                                else
                                {
                                    (item as Serie).SetEstadoEpisodio();
                                    seriesService.Adicionar((Serie)item);
                                }

                                frmBarraProgresso.BarraProgressoViewModel.dNrProgressoAtual++;

                                if (frmBarraProgresso.BarraProgressoViewModel.dNrProgressoAtual ==
                                    frmBarraProgresso.BarraProgressoViewModel.dNrProgressoMaximo)
                                {
                                    frmBarraProgresso.BarraProgressoViewModel.sDsTexto = "Concluído.";
                                }
                                break;
                            }

                            case Enums.TipoConteudo.Filme:
                                throw new NotImplementedException();     // TODO Filmes
                            }
                        }
                    }

                    Helper.MostrarMensagem("Séries inseridas com sucesso.", Enums.eTipoMensagem.Informativa);
                };

                frmBarraProgresso.BarraProgressoViewModel.Worker.RunWorkerCompleted += (s, ev) => ProcurarConteudoViewModel.ActionFechar();
                frmBarraProgresso.BarraProgressoViewModel.Worker.RunWorkerAsync();
                frmBarraProgresso.ShowDialog(ProcurarConteudoViewModel.Owner);
            }
示例#29
0
        public static IList <Serie> RetornarListaSeries()
        {
            _lstSeries    = new List <Serie>();
            _lstEpisodios = new List <Episodio>();

            var lstIntIdsSeries = new List <int>
            {
                257655,
                273181,
                205281,
                121361,
                274431,
                281485,
                263365,
                281662,
                268592,
                80379,
                279121,
                258744,
                153021,
                264492,
                267440,
                289679,
                88031,
                295068,
                289882,
                114801,
                79151,
                85249,
                295224,
                249827,
                79824,
                278155,
                81797,
                293088,
                259640,
                251085,
                281249
            };

            foreach (int item in lstIntIdsSeries)
            {
                Serie serie = APIRequests.GetSerieInfoAsync(item, "en").Result;
                serie.nCdVideo = _lstSeries.Any()
                                     ? _lstSeries.Last().nCdVideo + 1
                                     : 1;
                serie.nIdTipoConteudo = Enums.TipoConteudo.Série;
                serie.SetDefaultFolderPath();

                _lstSeries.Add(serie);
                foreach (Episodio episodio in serie.lstEpisodios)
                {
                    episodio.nCdEpisodio = _lstEpisodios.Any()
                                               ? _lstEpisodios.Last().nCdEpisodio
                                               : 1;
                    episodio.nCdVideo = serie.nCdVideo;
                    episodio.oSerie   = serie;
                    _lstEpisodios.Add(episodio);
                }
            }

            return(_lstSeries);
        }
        /*
         * private async void getResultPesquisaAsync(string title)
         * {
         *  lstResultPesquisa.Clear();
         *
         *  lstResultPesquisa.Add(oVideoCarregando);
         *  oVideoSelecionado = oVideoCarregando;
         *  List<Video> lstResultPesquisaTemp = new List<Video>();
         *
         *  if (nIdTipoConteudo == Enums.TipoConteudo.Série || nIdTipoConteudo == Enums.TipoConteudo.Anime)
         *  {
         *      List<Serie> lstSeries = await APIRequests.GetSeriesAsync(title);
         *
         *      if (lstSeries.Count == 0) // Verificar a primeira vez se é null para não exibir a mensagem quando não encontra resultados na tela de procurar conteúdo.
         *      {
         *          InputMessageBox InputMessageBox = new InputMessageBox(inputType.SemResultados);
         *          InputMessageBox.InputViewModel.Properties.InputText = title;
         *          InputMessageBox.ShowDialog();
         *          if (InputMessageBox.DialogResult == true)
         *          {
         *              lstSeries = await APIRequests.GetSeriesAsync(InputMessageBox.InputViewModel.Properties.InputText);
         *          }
         *
         *          while (lstSeries.Count == 0)
         *          {
         *              if (MessageBox.Show("Nenhum resultado encontrado, deseja pesquisar por outro nome?", "Nenhum resultado encontrado - " + Properties.Settings.Default.AppName, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
         *              {
         *                  InputMessageBox = new InputMessageBox(inputType.SemResultados);
         *                  InputMessageBox.InputViewModel.Properties.InputText = title;
         *                  InputMessageBox.ShowDialog();
         *                  if (InputMessageBox.DialogResult == true)
         *                  {
         *                      lstSeries = await APIRequests.GetSeriesAsync(InputMessageBox.InputViewModel.Properties.InputText);
         *                  }
         *              }
         *              else // TODO Fechar tela ao entrar no else
         *              {
         *                  bFechar = true;
         *                  return;
         *              }
         *          }
         *      }
         *
         *      foreach (var item in lstSeries)
         *      {
         *          if (!string.IsNullOrWhiteSpace(sDsPastaEditar)) // Verifica se é edição para setar o folderpath igual.
         *          {
         *              item.sDsPasta = sDsPastaEditar;
         *          }
         *          else
         *          {
         *              item.SetDefaultFolderPath();
         *          }
         *
         *          item.nCdVideo = nCdVideo;
         *          item.nIdTipoConteudo = nIdTipoConteudo;
         *
         *          bool bFlAdicionado = lstResultPesquisaTemp.Select(x => x.nCdApi).Contains(item.nCdApi);
         *
         *          if (!bFlAdicionado)
         *          {
         *              item.sDsSinopse = oVideoCarregando.sDsSinopse;
         *              lstResultPesquisaTemp.Add(item);
         *          }
         *      }
         *  }
         *
         *  lstResultPesquisa.Remove(oVideoCarregando);
         *  lstResultPesquisaTemp.Add(oVideoBuscaPersonalizada);
         *  lstResultPesquisaTemp.ForEach(x => lstResultPesquisa.Add(x));
         *  oVideoSelecionado = lstResultPesquisa[0];
         * }
         */

        private async void AlterarVideoAsync(Video oVideoSelecionadoTemp)
        {
            if (oVideoSelecionado == null || oVideoSelecionado == oVideoCarregando ||
                oVideoSelecionado.nIdEstado == Enums.Estado.Completo ||
                oVideoSelecionado.nIdEstado == Enums.Estado.CompletoSemForeignKeys)
            {
                return;
            }

            if (lstResultPesquisa.Count > 0 && oVideoSelecionado == oVideoBuscaPersonalizada)
            {
                var inputMessageBox = new InputMessageBox(inputType.AdicionarConteudo);
                inputMessageBox.ShowDialog();
                if (inputMessageBox.DialogResult == true)
                {
                    getResultPesquisaAsync(new Serie {
                        sDsTitulo = inputMessageBox.InputViewModel.Properties.InputText
                    });
                    return;
                }
                else
                {
                    _oVideoSelecionado =
                        lstResultPesquisa.FirstOrDefault(x => x.nCdApi == oVideoSelecionadoTemp?.nCdApi);
                    if (oVideoSelecionado == null)
                    {
                        ActionClose(false);
                    }
                    else
                    {
                        OnPropertyChanged(nameof(oVideoSelecionado));
                    }
                    return;
                }
            }
            else if (lstVideosQuaseCompletos != null && lstVideosQuaseCompletos.Count > 0)
            {
                lstVideosQuaseCompletos
                .Where(
                    x =>
                    x.nCdApi == oVideoSelecionado.nCdApi &&
                    (x.nIdEstado == Enums.Estado.Completo || x.nIdEstado == Enums.Estado.CompletoSemForeignKeys))
                .ToList()
                .ForEach(x =>
                {
                    _oVideoSelecionado = x;
                    OnPropertyChanged(nameof(oVideoSelecionado));
                    return;
                });
                //foreach (var item in listaVideosQuaseCompletos)
                //{
                //    if (item.IDApi == SelectedVideo.IDApi && (item.Estado == Enums.Estado.Completo || item.Estado == Enums.Estado.CompletoSemForeignKeys))
                //    {
                //        //Data = item;
                //        _SelectedVideo = item; OnPropertyChanged("SelectedVideo");
                //        return;
                //    }
                //}
            }

            Serie serie =
                await
                APIRequests.GetSerieInfoAsync(oVideoSelecionado.nCdApi,
                                              Properties.Settings.Default.pref_IdiomaPesquisa);

            serie.sDsTitulo = oVideoSelecionado.sDsTitulo;
            // Para manter os titulos no idioma original, ao invés das traduções do SBT (tipo "Os Seguidores" pro The Following ¬¬)
            serie.nIdTipoConteudo = nIdTipoConteudo;

            if (oVideoSelecionado.sDsPasta != null)
            {
                serie.sDsPasta = oVideoSelecionado.sDsPasta;
            }
            else if (sDsPastaEditar != null)
            {
                serie.sDsPasta = sDsPastaEditar;
            }
            else
            {
                serie.SetDefaultFolderPath();
            }

            serie.sAliases = oVideoSelecionado.sAliases;

            if (nCdVideo > 0)
            {
                serie.nCdVideo = nCdVideo;
            }

            lstResultPesquisa.Where(x => x.nCdApi == oVideoSelecionado.nCdApi)
            .ToList()
            .ForEach(x => { x.Clone(serie); });

            lstVideosQuaseCompletos.Add(serie);
            _oVideoSelecionado = serie;
            OnPropertyChanged(nameof(oVideoSelecionado));

            // Para forçar a habilitação do botão de configurar conteúdo (As vezes continua desabilitado até que haja interação na UI, com esse método isso não acontece).
            CommandManager.InvalidateRequerySuggested();
        }