/// <summary>
 /// Deprecated Method for adding a new object to the VestalisUserApplications EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToVestalisUserApplications(VestalisUserApplication vestalisUserApplication)
 {
     base.AddObject("VestalisUserApplications", vestalisUserApplication);
 }
 /// <summary>
 /// Create a new VestalisUserApplication object.
 /// </summary>
 /// <param name="vestalisUserApplicationId">Initial value of the VestalisUserApplicationId property.</param>
 /// <param name="userName">Initial value of the UserName property.</param>
 /// <param name="creationBy">Initial value of the CreationBy property.</param>
 /// <param name="creationDate">Initial value of the CreationDate property.</param>
 /// <param name="isDeleted">Initial value of the IsDeleted property.</param>
 public static VestalisUserApplication CreateVestalisUserApplication(global::System.Guid vestalisUserApplicationId, global::System.String userName, global::System.String creationBy, global::System.DateTime creationDate, global::System.Boolean isDeleted)
 {
     VestalisUserApplication vestalisUserApplication = new VestalisUserApplication();
     vestalisUserApplication.VestalisUserApplicationId = vestalisUserApplicationId;
     vestalisUserApplication.UserName = userName;
     vestalisUserApplication.CreationBy = creationBy;
     vestalisUserApplication.CreationDate = creationDate;
     vestalisUserApplication.IsDeleted = isDeleted;
     return vestalisUserApplication;
 }
        /// <summary>
        /// Verify and save VestalisUserApplications
        /// </summary>
        /// <param name="model">Model</param>
        /// <param name="loggedUser">Logged user</param>
        public static void VerifySaveVestalisUserApplications(UserModel model, string loggedUser)
        {
            using (VestalisEntities context = new VestalisEntities())
            {
                //if the selected business application is already added to the user, the system will show an error message
                //otherwise the system continues with the process
                bool exists = (from userApp in context.VestalisUserApplications
                               where userApp.IsDeleted == false && userApp.UserName == model.Email
                               && userApp.BusinessApplicationId == model.BusinessApplicationId
                               select userApp).Any();

                if (model.OpenMode == (int)ScreenOpenMode.Add)
                {
                    if (!exists)
                    {
                        VestalisUserApplication userApplication = new VestalisUserApplication
                        {
                            BusinessApplicationId = model.BusinessApplicationId,
                            UserName = model.Email,
                            ClientId = model.ClientId,
                            CreationBy = loggedUser,
                            CreationDate = DateTime.UtcNow
                        };

                        context.VestalisUserApplications.AddObject(userApplication);
                        context.SaveChanges();
                    }
                    else
                    {
                        model.ErrorList.Add(LanguageResource.UserInBusinessApplication);
                    }
                }
                else if (model.OpenMode == (int)ScreenOpenMode.Edit)
                {
                    UpdateBusinessApplicationUser(model, loggedUser, context, exists);

                }

            }
        }