private IEnumerable <CertificationUpsertModel> GenerateCertifications() { var selectedCertifications = new List <CertificationUpsertModel>(); var numCertification = rnd.Next(0, certifications.Count); while (selectedCertifications.Count() <= numCertification) { var index = rnd.Next(0, certifications.Count - 1); var selectedCertification = certifications.ElementAt(index); if (!selectedCertifications.Any(c => c.Name == selectedCertification.Name)) { var certification = new CertificationUpsertModel(); certification.CredentialId = selectedCertification.CredentialId; certification.CredentialUrl = selectedCertification.CredentialUrl; certification.IssuingOrganization = selectedCertification.IssuingOrganization; certification.Name = selectedCertification.Name; certification.IssueDate = GenerateDate(DateTime.Now.AddDays(-365), DateTime.Now).Date; if (selectedCertification.ExpirationDate.HasValue) { certification.ExpirationDate = certification.IssueDate.Value.AddYears(selectedCertification.ExpirationDate.Value.Year); } selectedCertifications.Add(certification); } } return(selectedCertifications); }
public async Task <ActionResult> Create(CreateModel model) { if (ModelState.IsValid) { try { var certification = new CertificationUpsertModel() { CredentialId = model.CredentialId, CredentialUrl = model.CredentialUrl, ExpirationDate = model.ExpirationDate, Id = Guid.NewGuid(), IssueDate = model.IssueDate, IssuingOrganization = model.IssuingOrganization, Name = model.CertificationName }; var result = await this._certificationProfilesProvider.AddCertificationAsync(model.ProfileId, certification, default); if (result) { return(RedirectToAction("Details", "CertificationProfiles", new { id = model.ProfileId })); } ModelState.AddModelError(string.Empty, "Error during inserting certification"); } catch { ModelState.AddModelError(string.Empty, "Error during inserting certification"); } } return(View()); }
internal static Certification ToCertification(this CertificationUpsertModel model) { return(new Certification() { CredentialId = model.CredentialId, CredentialUrl = model.CredentialUrl, ExpirationDate = model.ExpirationDate?.Date, Id = model.Id, IssueDate = model.IssueDate.HasValue ? model.IssueDate.Value : DateTime.Today, IssuingOrganization = model.IssuingOrganization, Name = model.Name }); }
public bool UpsertCertification(CertificationUpsertModel certification) { if (!IsInitialized || IsDeleted) { return(false); } var innerCertification = Certifications.FirstOrDefault(p => p.Id == certification.Id); if (innerCertification != null) { Certifications.Remove(innerCertification); } Certifications.Add(certification.ToCertification()); return(true); }
public async Task <bool> UpdateCertificationAsync(Guid profileId, CertificationUpsertModel certification, CancellationToken token) { if (certification == null) { throw new ArgumentNullException(nameof(certification)); } var uri = this.CreateAPIUri($"{profileId}/certifications/{certification.Id}"); var profileJson = JsonSerializer.Serialize(certification, new JsonSerializerOptions { PropertyNameCaseInsensitive = true, }); var putContent = new StringContent(profileJson, Encoding.UTF8, "application/json"); var response = await this._httpClient.PutAsync(uri, putContent, token); return(response.IsSuccessStatusCode); }