Пример #1
0
        public ActionResult Create(Contact model)
        {
            int id          = WebSecurity.GetUserId(WebSecurity.CurrentUserName);
            var userProfile = _userContext.UserProfiles.First(x => x.UserId == id);

            if (string.IsNullOrWhiteSpace(userProfile.PrivateKey) || string.IsNullOrWhiteSpace(userProfile.PublicKey))
            {
                TempData["Notification"] = new Notification("Please provide access keys that have been sent you by email", Nature.warning);
                return(RedirectToAction("Account", "Settings"));
            }

            if (ModelState.IsValid)
            {
                UserData userData = new UserData();
                userData.PublicKey = userProfile.PublicKey;
                userData.Timestamp = DateTime.Now;
                userData.GenerateAuthenticationHash(userProfile.PrivateKey + userProfile.PublicKey + "POST/contact" + userData.Timestamp + userProfile.PrivateKey);

                ContactEndpoint c       = new ContactEndpoint();
                string          message = c.CreateContact(model, userData);

                TempData["Notification"] = new Notification("Contact has been added" + message, Nature.success);
                Thread.Sleep(2500);
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(model));
            }
        }
Пример #2
0
        public ActionResult Edit(string id)
        {
            int userId      = WebSecurity.GetUserId(WebSecurity.CurrentUserName);
            var userProfile = _userContext.UserProfiles.First(x => x.UserId == userId);

            UserData userData = new UserData();

            userData.PublicKey = userProfile.PublicKey;
            userData.Timestamp = DateTime.Now;
            userData.GenerateAuthenticationHash(userProfile.PrivateKey + userProfile.PublicKey + "GET/contact/" + id + userData.Timestamp + userProfile.PrivateKey);

            ContactEndpoint c       = new ContactEndpoint();
            var             contact = c.GetContact(id, userData);

            GroupEndpoint g = new GroupEndpoint();

            userData.GenerateAuthenticationHash(userProfile.PrivateKey + userProfile.PublicKey + "GET/contact/1/9999/true" + userData.Timestamp + userProfile.PrivateKey);
            var groups       = g.GetGroups(1, 9999, userData);
            var currentGroup = groups.FirstOrDefault(gr => gr._id == contact.contact.parentId);

            ViewBag.Groups = groups;

            ViewBag.GroupName = (currentGroup == null ? "---" : currentGroup.name);

            return(View(contact));
        }
 public static Task <TransferResponse> TransferAsync(this Modality m, ContactEndpoint endpoint, TransferOptions options)
 {
     return(Task.Factory.FromAsync(m.BeginTransfer, result =>
     {
         ModalityState state;
         IList <string> prop;
         m.EndTransfer(out state, out prop, result);
         return new TransferResponse {
             TargetState = state, ContextProperties = prop
         };
     }, endpoint, options, null));
 }
Пример #4
0
        public JsonResult GetContactsInGroupByAjax(string id /* group Id */)
        {
            int userId      = WebSecurity.GetUserId(WebSecurity.CurrentUserName);
            var userProfile = _userContext.UserProfiles.First(x => x.UserId == userId);

            UserData userData = new UserData();

            userData.PublicKey = userProfile.PublicKey;
            userData.Timestamp = DateTime.Now;
            userData.GenerateAuthenticationHash(userProfile.PrivateKey + userProfile.PublicKey + "GET/contact/group/" + id + userData.Timestamp + userProfile.PrivateKey);

            ContactEndpoint c       = new ContactEndpoint();
            var             contact = c.GetContactsInGroup(id, userData);

            return(Json(contact, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// Gets the contact details.
        /// </summary>
        /// <param name="contact">The contact whose details needs to be retrieved.</param>
        public string GetContactInfo(Contact contact)
        {
            string returnValue         = string.Empty;
            string activityDescription = null;

            List <object> collaborationPhones = null;

            // Get the Availability information for the contact.
            ContactAvailability availEnum = (ContactAvailability)(contact)
                                            .GetContactInformation(ContactInformationType.Availability);

            // Get the Activity information for the contact.
            activityDescription = (string)contact
                                  .GetContactInformation(ContactInformationType.Activity);

            // Get the ContactEndpoints information for the contact.
            collaborationPhones = (List <object>)contact
                                  .GetContactInformation(ContactInformationType.ContactEndpoints);

            // Generate a string for the information retrieved and return it.
            if (collaborationPhones != null)
            {
                returnValue += "\r\nPhones:";
                foreach (object phone in collaborationPhones)
                {
                    ContactEndpoint anEndpoint = (ContactEndpoint)phone;
                    returnValue += "\r\nType: "
                                   + anEndpoint.Type.ToString()
                                   + "\r\n DisplayName: "
                                   + anEndpoint.DisplayName
                                   + "\r\n Uri: "
                                   + anEndpoint.Uri;
                }
            }

            returnValue += "\r\n Activity:" + activityDescription;
            returnValue += "\r\nPersonal note: " + contact
                           .GetContactInformation(ContactInformationType.PersonalNote);
            returnValue += "\r\nOOF note: " + contact
                           .GetContactInformation(ContactInformationType.OutOfficeNote);
            returnValue += "\r\nAvailable:" + availEnum.ToString();

            return(returnValue);
        }
Пример #6
0
        public ActionResult Delete(string id)
        {
            int userId      = WebSecurity.GetUserId(WebSecurity.CurrentUserName);
            var userProfile = _userContext.UserProfiles.First(x => x.UserId == userId);

            UserData userData = new UserData();

            userData.PublicKey = userProfile.PublicKey;
            userData.Timestamp = DateTime.Now;
            userData.GenerateAuthenticationHash(userProfile.PrivateKey + userProfile.PublicKey + "DELETE/contact/" + id + userData.Timestamp + userProfile.PrivateKey);

            ContactEndpoint c = new ContactEndpoint();

            string message = c.DeleteContact(id, userData);

            TempData["Notification"] = new Notification("Contact has been removed" + message, Nature.success);

            return(RedirectToAction("Index"));
        }
Пример #7
0
        public ActionResult Edit(ContactViewModel model)
        {
            int userId      = WebSecurity.GetUserId(WebSecurity.CurrentUserName);
            var userProfile = _userContext.UserProfiles.First(x => x.UserId == userId);

            model.contact.isContactGroup = false;

            UserData userData = new UserData();

            userData.PublicKey = userProfile.PublicKey;
            userData.Timestamp = DateTime.Now;
            userData.GenerateAuthenticationHash(userProfile.PrivateKey + userProfile.PublicKey + "POST/contact/" + model.contact._id + userData.Timestamp + userProfile.PrivateKey);

            ContactEndpoint c       = new ContactEndpoint();
            string          message = c.UpdateContact(model.contact, userData);

            TempData["Notification"] = new Notification("Contact has been modified" + message, Nature.success);
            Thread.Sleep(2500);

            return(RedirectToAction("Index"));
        }
Пример #8
0
        public ActionResult Index(string searchQuery, string searchScope, int?pageNumber, int pageSize = 12)
        {
            int id          = WebSecurity.GetUserId(WebSecurity.CurrentUserName);
            var userProfile = _userContext.UserProfiles.First(x => x.UserId == id);

            searchScope = "all";
            if (string.IsNullOrWhiteSpace(userProfile.PrivateKey) || string.IsNullOrWhiteSpace(userProfile.PublicKey))
            {
                TempData["Notification"] = new Notification("Please provide access keys that have been sent you by email", Nature.warning);
                return(RedirectToAction("Settings", "Account"));
            }

            pageNumber = pageNumber ?? 1;

            ContactEndpoint c        = new ContactEndpoint();
            UserData        userData = new UserData();

            userData.PublicKey = userProfile.PublicKey;
            userData.Timestamp = DateTime.Now;

            List <Contact> result;

            if (string.IsNullOrWhiteSpace(searchQuery) || searchScope == null)
            {
                userData.GenerateAuthenticationHash(userProfile.PrivateKey + userProfile.PublicKey + "GET/contact/" + pageNumber.Value + "/" + pageSize + "/false" + userData.Timestamp + userProfile.PrivateKey);
                result = c.GetContacts(pageNumber.Value, pageSize, userData);
            }
            else
            {
                userData.GenerateAuthenticationHash(userProfile.PrivateKey + userProfile.PublicKey + "GET/contact/" + searchScope + "/" + searchQuery + "/" + pageNumber.Value + "/" + pageSize + "/false" + userData.Timestamp + userProfile.PrivateKey);
                result = c.GetFilteredContacts(searchScope, searchQuery, pageNumber.Value, pageSize, userData);
            }

            ViewBag.SearchQuery = searchQuery;
            return(View(result));
        }