Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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) }));
        }