예제 #1
0
        public async Task <Validation> UploadCertificate(string certificateCode)
        {
            Validation validation = new Validation();

            string userPath        = _pathService.GetUserFolder();
            string certificatePath = _pathService.GetCertificateFolder();

            bool hasCertificate = await _githubService.ExistFileAsync(certificatePath, certificateCode);

            if (hasCertificate)
            {
                validation.ErrorMessages.Add("Este certificado ya fue agregado. Pruebe con otro.");
                validation.Success = false;
            }
            else
            {
                Certificate certificate = await _udemyService.GetCertificate(certificateCode);

                if (certificate.Code is null)
                {
                    validation.ErrorMessages.Add("No se encontro el certificado. Revise el link ingresado.");
                    validation.Success = false;
                }
                else
                {
                    Validation hasUserInfo = await GetUserAsync();

                    if (!hasUserInfo.Success)
                    {
                        await _githubService.CreateFileAsync(userPath, "FirstCertificate", certificateCode);
                    }

                    ValidationResult <bool> isFromSameUser = await CertificateIsFromSameUser(certificate);

                    if (isFromSameUser.Result)
                    {
                        string certificateInfo = JsonSerializer.Serialize(certificate);
                        await _githubService.CreateFileAsync(certificatePath, certificateCode, certificateInfo);
                    }
                    else
                    {
                        validation.ErrorMessages.Add("El certificado le pertenece a otro usuario.");
                        validation.Success = false;
                    }
                }
            }

            return(validation);
        }
예제 #2
0
        public async Task <Validation> CreateCategoryAsync(Category category)
        {
            Validation validation   = new Validation();
            string     categoryPath = _pathService.GetCategoryFolder();
            string     content      = JsonSerializer.Serialize(category);
            await _githubService.CreateFileAsync(categoryPath, category.Name, content);

            return(validation);
        }