Beispiel #1
0
 public ActionResult UpdatePhoto(HttpPostedFileBase PhotoFile)
 {
     if (PhotoFile != null && PhotoFile.ContentLength > 0)
     {
         var file = AzureFileHelper.AddPhoto(User.Identity.GetUserId(), PhotoFile);
         var user = BLLUsers.GetUserById(User.Identity.GetUserId());
         user.PhotoPath = file.Uri.AbsoluteUri;
         BLLUsers.UpdateUser(user);
     }
     return(RedirectToAction("Profil"));
 }
Beispiel #2
0
        //public string Gender { get; set; }

        //public string FacebookId { get; set; }

        public async Task <ClaimsIdentity> GenerateUserIdentityAsync(UserManager <ApplicationUser> manager)
        {
            // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
            var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);

            var user = BLLUsers.GetUserById(this.Id);

            userIdentity.AddClaim(new Claim("Id", user.Id));
            userIdentity.AddClaim(new Claim("FirstName", user.FirstName ?? ""));
            userIdentity.AddClaim(new Claim("LastName", user.LastName ?? ""));
            userIdentity.AddClaim(new Claim("Email", user.Email ?? ""));
            // Add custom user claims here
            return(userIdentity);
        }
Beispiel #3
0
        public ActionResult Assign(int conflictId, string arbiterId)
        {
            var conflict  = BLLConflicts.GetConflictForArbitration(conflictId);
            var demandeur = conflict.UsersInConflicts.First(c => c.IdUser == conflict.IdCreationUser);

            if (demandeur.IsLawyer != null && demandeur.IsLawyer.Value)
            {
                demandeur = conflict.UsersInConflicts.First(c => c.IdLawyer == conflict.IdCreationUser);
            }
            var defendeur = conflict.UsersInConflicts.First(c => (c.IsLawyer == null || !c.IsLawyer.Value) && c.IdUser != demandeur.IdUser);

            if (demandeur.UserCompany == null || demandeur.UserCompany.Company == null || !demandeur.UserCompany.Company.isFilled() ||
                defendeur.UserCompany == null || defendeur.UserCompany.Company == null || !defendeur.UserCompany.Company.isFilled())
            {
                TempData["Error"] = "Vous devez avoir rempli les formulaires administratif des parties (adresses,rcs,etc) avant de pouvoir assigner le cas.";
                return(RedirectToAction("Conflict", "Viewer", new { conflictId = conflictId }));
            }



            BLLArbiter.AssignArbiterToConflict(conflictId, arbiterId);
            var arbiter = BLLUsers.GetUserById(arbiterId);


            //Generate Mission Order and save it on cloud
            var stream = DocGenerator.GenerateMissionOrder(conflictId);
            var blob   = AzureFileHelper.AddFile(conflictId, stream.FileStream, stream.FileName);

            stream.FileStream.Dispose();
            BLLLegalDocuments.AddLegalDocument(new LegalDocument()
            {
                IdConflict = conflictId, Filename = stream.FileName, Url = blob.Uri.AbsoluteUri, Type = (int)LegalDocumentTypeEnum.MissionAct
            });
            Guid guid = Guid.NewGuid();

            FastArbitreEmails.NewMissionOrder(arbiter.Email, blob.Uri.AbsoluteUri, Request.UrlReferrer.DnsSafeHost + Url.Action("Index", "Email", new { id = guid.ToString() }), guid);

            return(RedirectToAction("Centre"));
        }
Beispiel #4
0
        public ActionResult StartDebate(int conflictId, int eventId, string debatType, string mailTitle, string mailBody, string visioTitle, string visioDescription, DateTime?rdv, int?debatTime)
        {
            var debate = new Debate();

            debate.CreateDate = DateTime.Now;
            debate.IdEvent    = eventId;
            debate.CountDown  = debatTime;
            debate.Type       = debatType == "mail" ? (int)DebateTypeEnum.Mail : (int)DebateTypeEnum.Visio;
            debate.Title      = debate.Type == (int)DebateTypeEnum.Mail ? mailTitle : visioTitle;
            debate            = BLLDebates.CreateDebate(debate);

            if (debate.Type == (int)DebateTypeEnum.Mail)
            {
                var mailDebate = new MailDebate();
                mailDebate.CreateDate = DateTime.Now;
                mailDebate.CreatedBy  = User.Identity.GetId();
                mailDebate.IdDebate   = debate.Id;
                mailDebate.Body       = mailBody;
                mailDebate            = BLLDebates.AddMailDebate(mailDebate);

                if (debate.MailDebates == null)
                {
                    debate.MailDebates = new List <MailDebate>();
                }
                foreach (var item in BLLDebates.GetUsersForDebate(debate.Id))
                {
                    Guid guid = Guid.NewGuid();
                    FastArbitreEmails.YouHaveMail(item, debate, Url.Action("MailDebate", "Arbitre", new { debatId = debate.Id }, this.Request.Url.Scheme) + "#mail_" + mailDebate.Id, Request.UrlReferrer.DnsSafeHost + Url.Action("Index", "Email", new { id = guid.ToString() }), guid);
                }

                debate.MailDebates.Add(mailDebate);
                return(RedirectToAction("MailDebate", new { debatId = debate.Id }));
            }
            else if (debate.Type == (int)DebateTypeEnum.Visio)
            {
                var conflict = BLLConflicts.GetConflictWithUsers(conflictId);
                var chatRoom = new ClickNClaim.OpenFireConnector.chatRoom(debate.Title, visioDescription, rdv.Value);
                OpenFireConnector.Connector connector = new OpenFireConnector.Connector("http://openfire-444e60hk.cloudapp.net:9090/", "admin", "SF211084agantio");
                foreach (var item in conflict.UsersInConflicts)
                {
                    var visioDebate = new MeetingDebate();
                    visioDebate.CreateDate  = DateTime.Now;
                    visioDebate.Date        = rdv.Value;
                    visioDebate.Description = visioDescription;

                    // visioDebate.IdUser = item.IdUser;
                    visioDebate.Link  = "https://openfire-444e60hk.cloudapp.net:7443/ofmeet/?b=1-1461653024012";
                    visioDebate.Title = debate.Title;
                    //visioDebate.IdDebate = debate.Id;
                    //visioDebate = BLLDebates.AddMeetingDate(visioDebate);
                    //if (debate.MeetingDebates == null)
                    //{
                    //    debate.MeetingDebates = new List<MeetingDebate>();
                    //}
                    //debate.MeetingDebates.Add(visioDebate);
                    var user = BLLUsers.GetUserById(item.IdUser);
                    var existingUserInOpenFire = connector.UserExists(user.DisplayName.Replace(" ", "."));
                    if (existingUserInOpenFire == null)
                    {
                        existingUserInOpenFire = connector.CreateUser(new OpenFireConnector.user()
                        {
                            email = user.Email, name = user.DisplayName.Replace(' ', '.'), password = user.Email, username = user.DisplayName.Replace(' ', '.')
                        });
                    }

                    chatRoom.members.Add(new OpenFireConnector.member()
                    {
                        value = user.DisplayName.Replace(" ", ".").ToLower() + "@openfire"
                    });
                    Guid guid = Guid.NewGuid();
                    FastArbitreEmails.VisioConferencePlanned(user.Email, rdv, visioTitle, visioDescription, connector.RoomLink + chatRoom.naturalName,
                                                             user.DisplayName.Replace(" ", ".").ToLower(), user.Email,
                                                             Request.UrlReferrer.DnsSafeHost + Url.Action("Index", "Email", new { id = guid.ToString() }), guid);
                }
                if (chatRoom.members.Where(c => c.value == conflict.Arbiter.DisplayName.Replace(" ", ".") + "@openfire").FirstOrDefault() != null)
                {
                    chatRoom.members.RemoveAll(c => c.value == conflict.Arbiter.DisplayName.Replace(" ", ".") + "@openfire");
                }
                chatRoom.owners.Add(new OpenFireConnector.owner()
                {
                    value = conflict.Arbiter.DisplayName.Replace(" ", ".") + "@openfire"
                });

                var link = connector.CreateChatroom(chatRoom);

                connector = null;
            }
            return(RedirectToAction("Conflict", "Viewer", new { conflictId = conflictId }));
        }
Beispiel #5
0
        public async Task <ActionResult> ExternalLoginCallback(string returnUrl)
        {
            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

            if (loginInfo == null)
            {
                return(RedirectToAction("Login"));
            }

            // Sign in the user with this external login provider if the user already has a login
            var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent : false);

            switch (result)
            {
            case SignInStatus.Success:
                if (!String.IsNullOrWhiteSpace(returnUrl))
                {
                    return(Redirect(returnUrl));
                }
                return(RedirectToAction("Profil", "Account"));

            case SignInStatus.LockedOut:
                return(View("Lockout"));

            case SignInStatus.RequiresVerification:
                return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false }));

            case SignInStatus.Failure:
            default:
                // If the user does not have an account, then prompt the user to create an account
                ViewBag.ReturnUrl     = returnUrl;
                ViewBag.LoginProvider = loginInfo.Login.LoginProvider;

                ApplicationUser au = null;

                if (loginInfo.Login.LoginProvider.ToLower() == "facebook")
                {
                    au = new ApplicationUser
                    {
                        UserName   = loginInfo.Email,
                        Email      = loginInfo.Email,
                        CreateDate = DateTime.Now,
                        FirstName  = loginInfo.ExternalIdentity.Claims.First(x => x.Type == "first_name").Value,
                        LastName   = loginInfo.ExternalIdentity.Claims.First(x => x.Type == "last_name").Value,
                    };
                }
                else
                {
                    au = new ApplicationUser
                    {
                        UserName   = loginInfo.ExternalIdentity.Claims.First(x => x.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name").Value,
                        Email      = loginInfo.ExternalIdentity.Claims.First(x => x.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress").Value,
                        CreateDate = DateTime.Now,
                        FirstName  = loginInfo.ExternalIdentity.Claims.First(x => x.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname").Value,
                        LastName   = loginInfo.ExternalIdentity.Claims.First(x => x.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname").Value,
                    };
                }

                var existingUser = BLLUsers.GetUserByEmail(loginInfo.Email);
                if (existingUser != null)
                {
                    BLLUsers.AssociateUserAccounts(loginInfo.Login.LoginProvider, loginInfo.Login.ProviderKey, existingUser.Id);

                    if (loginInfo.Login.LoginProvider == "facebook")
                    {
                        existingUser.PhotoPath = String.Format("http://graph.facebook.com/{0}/picture", loginInfo.ExternalIdentity.Claims.First(x => x.Type == "id").Value);
                        BLLUsers.UpdateUser(existingUser);
                    }
                    au.Id = existingUser.Id;
                    await SignInManager.SignInAsync(au, isPersistent : false, rememberBrowser : false);

                    return(RedirectToAction("Profil", "Account"));
                }


                var res = await UserManager.CreateAsync(au);

                if (res.Succeeded)
                {
                    res = await UserManager.AddLoginAsync(au.Id, loginInfo.Login);

                    var u = BLLUsers.GetUserById(au.Id);
                    if (loginInfo.Login.LoginProvider == "facebook")
                    {
                        u.PhotoPath = String.Format("http://graph.facebook.com/{0}/picture", loginInfo.ExternalIdentity.Claims.First(x => x.Type == "id").Value);
                        BLLUsers.UpdateUser(u);
                    }
                    if (res.Succeeded)
                    {
                        await SignInManager.SignInAsync(au, isPersistent : false, rememberBrowser : false);

                        return(RedirectToAction("Profil", "Account"));
                    }
                    else
                    {
                        return(View("ExternalLoginFailure"));
                    }
                }
                else
                {
                    return(View("ExternalLoginFailure"));
                }
            }
        }