public AddressBookModel(CertificatesResponse data) { Certificates = new Certificates(); Certificates.UserCertificates = new List <ContactCertificateRelationship>(); foreach (CertificateInfo certificateInfo in data.Certificates) { var relationship = new ContactCertificateRelationship(); relationship.CertificateInfo = certificateInfo; relationship.CertificateID = certificateInfo.CertificateId; relationship.FriendlyName = certificateInfo.RecipientCertificate.FriendlyName; Certificates.UserCertificates.Add(relationship); } Certificates.Filter = CertificateFilter.Active; }
public ActionResult CreateContact(string Name, string Email, string certificates, Guid?userId) { Guid token = CheckSessionAuthState(CurrentUser, _authService); if (token == Guid.Empty) { ViewBag.login = true; return(View()); } var serializaer = new JavaScriptSerializer(); var contact = new Contact(); contact.Email = Email; contact.Name = Name; contact.ID = Guid.NewGuid(); var certs = serializaer.Deserialize <List <CertificateInfoContactAdd> >(certificates); contact.Certificates = new List <ContactCertificateRelationship>(); foreach (CertificateInfoContactAdd certificateInfoContactAdd in certs) { var contactCertificateRelationship = new ContactCertificateRelationship(); //серт не в сессии if (Session[certificateInfoContactAdd.Thumbprint] != null) { contactCertificateRelationship.CertificateBytes = (byte[])Session[certificateInfoContactAdd.Thumbprint]; } //серт из БД else { contactCertificateRelationship.CertificateID = certificateInfoContactAdd.CertificateId; } contactCertificateRelationship.FriendlyName = certificateInfoContactAdd.FriendlyName; contact.Certificates.Add(contactCertificateRelationship); } _cryptxService.CreateContact(contact, (userId == null ? Guid.Empty : (Guid)userId), token); ViewBag.UserId = userId == null ? Guid.Empty : (Guid)userId; ViewBag.refresh = true; return(View()); }
public ActionResult EditContact(Guid contactId, ContactCertificatesModel model, string que, string save, string deleteContact, Guid?userId) { Guid token = CheckSessionAuthState(CurrentUser, _authService); if (token == Guid.Empty) { ViewBag.login = true; return(View()); } if (!string.IsNullOrEmpty(save)) { var contactToEdit = new Contact(); contactToEdit.ID = model.ID; contactToEdit.Name = model.Name; contactToEdit.Email = model.Email; contactToEdit.Certificates = new List <ContactCertificateRelationship>(); if (Request.Form.AllKeys.Contains("certificate.FriendlyName")) { //List<string> frNames = Request.Form["certificate.FriendlyName"].Split(',').ToList(); List <string> ids = Request.Form["certificate.Id"].Split(',').ToList(); List <string> thumbprints = Request.Form["certificate.Thumbprint"].Split(',').ToList(); for (int i = 0; i < ids.Count; i++) { var certificateRelationship = new ContactCertificateRelationship(); certificateRelationship.CertificateInfo = new CertificateInfo(); certificateRelationship.CertificateID = new Guid(ids[i]); certificateRelationship.CertificateInfo.CertificateId = new Guid(ids[i]); //certificateRelationship.FriendlyName = frNames[i]; certificateRelationship.CertificateInfo.Thumbprint = thumbprints[i]; contactToEdit.Certificates.Add(certificateRelationship); } } _cryptxService.EditContact(contactToEdit, (userId == null ? Guid.Empty : (Guid)userId), token); } List <ContactCertificateRelationship> certificates = _cryptxService.GetContactCertificates(contactId, model.SearchString, model.Sort, model.Filter, (userId == null ? Guid.Empty : (Guid)userId), token); model.Certificates.Clear(); Contact contact = _cryptxService.GetContact(contactId, (userId == null ? Guid.Empty : (Guid)userId), token); model.Name = contact.Name; model.Email = contact.Email; foreach (ContactCertificateRelationship contactCertificateRelationship in certificates) { var certificate = new ContactCertificate(); certificate.Id = contactCertificateRelationship.CertificateID; certificate.FriendlyName = contactCertificateRelationship.FriendlyName; certificate.Thumbprint = contactCertificateRelationship.CertificateInfo.Thumbprint; certificate.SubjectName = contactCertificateRelationship.CertificateInfo.SubjectName; certificate.IsTest = contactCertificateRelationship.CertificateInfo.IsTest; if (DateTime.Now < contactCertificateRelationship.CertificateInfo.NotBefore) { certificate.TimeMessage = "Недействителен до " + contactCertificateRelationship.CertificateInfo.NotBefore.Date .ToShortDateString().Replace("/", "."); } if (DateTime.Now > contactCertificateRelationship.CertificateInfo.NotBefore && DateTime.Now < contactCertificateRelationship.CertificateInfo.NotAfter) { certificate.TimeMessage = "Действителен до " + contactCertificateRelationship.CertificateInfo.NotAfter.Date .ToShortDateString().Replace("/", "."); } else { certificate.TimeMessage = "Недействителен с " + contactCertificateRelationship.CertificateInfo.NotAfter.Date .ToShortDateString().Replace("/", "."); certificate.TimeMessageStyle = "color: red"; } if (contactCertificateRelationship.CertificateInfo != null && !string.IsNullOrEmpty(contactCertificateRelationship.CertificateInfo.Organization)) { certificate.Organization = contactCertificateRelationship.CertificateInfo.Organization; } if (contactCertificateRelationship.CertificateInfo != null && !string.IsNullOrEmpty(contactCertificateRelationship.CertificateInfo.INN)) { certificate.INN = "ИНН " + contactCertificateRelationship.CertificateInfo.INN; } model.Certificates.Add(certificate); } //запрос с потерей данных if (!string.IsNullOrEmpty(que)) { ViewBag.UserId = userId == null ? Guid.Empty : (Guid)userId; return(View(model)); } return(RedirectToAction("ContactList", new { userId = (userId == null ? Guid.Empty : (Guid)userId) })); }