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); }
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); }