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);
        }
Example #5
0
        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);
        }