private void SynchronizeFunctions(ParticipationAggregate aggregate, Participation participation)
        {
            var removedFunctions = GetRemovedFunctions(aggregate, participation);

            removedFunctions.ForEach(function => function.IsDeleted = true);
            var currentFunctions = GetCurrentFunctions(participation);
            var newFunctions     = GetNewFunctions(aggregate, currentFunctions);

            currentFunctions.ForEach(currentFunction =>
            {
                var function          = aggregate.Functions.First(f => f.Id.Value == currentFunction.Id);
                currentFunction.Code  = function.Code;
                currentFunction.Order = function.Order;
                var userFunction      =
                    currentFunction.UserFunctions.FirstOrDefault(uF => uF.UserId == function.UserId.Value);
                if (userFunction is null)
                {
                    currentFunction.UserFunctions.Add(new UserFunction
                    {
                        UserId = function.UserId.Value, LastModificationDate = function.LastModificationDate
                    });
                }
                else
                {
                    userFunction.LastModificationDate = function.LastModificationDate;
                }
            });
            newFunctions.ForEach(function => participation.Functions.Add(function));
        }
示例#2
0
        public IActionResult YesActivity(int actId)
        {
            Actvty thisActivity    = dbContext.Activities.FirstOrDefault(a => a.ActvtyId == actId);
            User   usersActivities = dbContext.Users
                                     .Include(a => a.AttendedActs)
                                     .ThenInclude(e => e.Activity)
                                     .ToList().FirstOrDefault(u => u.UserId == HttpContext.Session.GetInt32("UserId"));

            bool canAttend = true;

            foreach (var a in usersActivities.AttendedActs)
            {
                if (a.Activity.ActivityDate.Date == thisActivity.ActivityDate.Date)
                {
                    canAttend = false;
                    Console.WriteLine("This user cannot attend activity: " + thisActivity.Title);
                }
            }

            if (canAttend)
            {
                Participation participation = new Participation();
                participation.UserId     = (int)HttpContext.Session.GetInt32("UserId");
                participation.ActivityId = actId;
                dbContext.Participations.Add(participation);
                dbContext.SaveChanges();
            }

            return(RedirectToAction("Home"));
        }
示例#3
0
        public static bool AddParticipation(GameTable table, string curUser)
        {
            if (table.IsFull())
            {
                return(false);
            }
            Participation newParticipation;

            if (table.Participations.Count % 2 == 1)
            {
                User actualUser = UserRepository.Instance.Get()
                                  .First(user => user.Value.Nickname == curUser).Value;
                newParticipation =
                    new Participation(actualUser)
                {
                    Partner = table.Participations.Last().Participant
                };
                table.Participations.Last().Partner = actualUser;
            }
            else
            {
                newParticipation = new Participation(UserRepository.Instance.Get().First(user => user.Value.Nickname == curUser).Value);
            }
            table.PlayerFieldAreas.Find(area => area.Identifier == table.Participations.Count + 1).Participation = newParticipation;
            table.Participations.Add(newParticipation);
            return(true);
        }
示例#4
0
        public async Task Skipping(int?eventId, int?personId = null)
        {
            await LoadContextAsync(null, eventId);

            if (Event != null &&
                ((Membership?.Manager ?? false) || personId == null))
            {
                Participation participation = Event?.Participation.FirstOrDefault(x => x.PersonId == (personId ?? Me.Id));
                if (participation?.Participate ?? true)
                {
                    if (participation == default(Participation))
                    {
                        participation = new Participation()
                        {
                            PersonId    = personId ?? Me.Id,
                            ByPersonId  = Me.Id,
                            EventId     = Event.Id,
                            Participate = false,
                            Date        = DateTime.Now
                        };
                        await participationRepo.AddParticipationAsync(participation);
                    }
                    else
                    {
                        participation.ByPersonId  = Me.Id;
                        participation.Participate = false;
                        participation.Date        = DateTime.Now;
                        await participationRepo.SaveParticipationAsync(participation);
                    }
                    await mailService.SendParticipatonMailAsync(participation);
                }
            }
        }
示例#5
0
        public async Task <IActionResult> Post(string idQuiz, [FromBody] Participation p)
        {
            p.Quiz.Id = new ObjectId(idQuiz);
            await participationDao.Create(p);

            return(new CreatedResult($"/quiz/{idQuiz}/participation/{p.Id}", p));
        }
示例#6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public List <Participation> getListeParticipation(int id_liste)
        {
            String sql = "SELECT * FROM \"participations\" "
                         + "WHERE id_liste = " + id_liste + ";";

            try
            {
                DataTable dt = conn.getConnection(sql);

                List <Participation> listeRetour = new List <Participation>();

                foreach (DataRow row in dt.Rows)
                {
                    Participation participation = new Participation();
                    participation.id_participation = (int.Parse(row.ItemArray.GetValue(0).ToString()));
                    participation.id_liste         = (int.Parse(row.ItemArray.GetValue(1).ToString()));
                    participation.id_personne      = (int.Parse(row.ItemArray.GetValue(2).ToString()));
                    participation.participation    = (long.Parse(row.ItemArray.GetValue(3).ToString()));

                    PersonneDAL persService = new PersonneDAL();
                    participation.personne = persService.getInfosPersonne(participation.id_personne);

                    listeRetour.Add(participation);
                }

                return(listeRetour);
            }
            catch (Exception)
            {
                return(null);
            }
        }
示例#7
0
        public void UpdateParticipation(ParticipationModel p)
        {
            Participation p1 = db.Participations.Where(i => i.Project_ID == p.Project_ID && i.Employee_ID == p.Employee_ID).FirstOrDefault();

            db.Entry(ToParticipation(p1, p)).State = EntityState.Modified;
            db.SaveChanges();
        }
示例#8
0
        public async Task <IActionResult> Start(int?id, string vs)
        {
            if (id == null)
            {
                return(BadRequest());
            }
            ApplicationUser user = await _userManager.GetUserAsync(User);

            var comp = await _context.Competitions.Include(x => x.Participations).FirstOrDefaultAsync(x => x.ID == id);

            if (comp.Participations.Any(y => y.User.Id == user.Id) && comp.Name != null)
            {
                return(Unauthorized());
            }
            if (vs != null && vs != "" && comp.Name == null)
            {
                Participation p2 = new Participation();
                p2.Competition = comp;
                p2.User        = _context.Users.FirstOrDefault(x => x.Id == vs);
                comp.Participations.Add(p2);
            }
            Participation p = new Participation();

            p.Competition = comp;
            p.User        = user;
            comp.Participations.Add(p);

            _context.SaveChanges();
            return(Ok());
        }
示例#9
0
        protected override void ReadXmlBase(System.Xml.XmlReader reader)
        {
            base.ReadXmlBase(reader);

            Check.Assert(reader.LocalName == "language", "Expected LocalName is 'language' rather than " +
                         reader.LocalName);
            this.language = new OpenEhr.RM.DataTypes.Text.CodePhrase();
            this.language.ReadXml(reader);

            Check.Assert(reader.LocalName == "encoding", "Expected LocalName is 'encoding' rather than " +
                         reader.LocalName);
            this.encoding = new OpenEhr.RM.DataTypes.Text.CodePhrase();
            this.encoding.ReadXml(reader);

            Check.Assert(reader.LocalName == "subject", "Expected LocalName is 'subject' rather than " +
                         reader.LocalName);
            string subjectType = RmXmlSerializer.ReadXsiType(reader);

            this.subject = RmFactory.PartyProxy(subjectType);

            this.subject.ReadXml(reader);


            if (reader.LocalName == "provider")
            {
                string providerType = RmXmlSerializer.ReadXsiType(reader);
                this.provider = RmFactory.PartyProxy(providerType);

                this.provider.ReadXml(reader);
            }

            if (reader.LocalName == "other_participations")
            {
                this.otherParticipations = new OpenEhr.AssumedTypes.List <Participation>();
                do
                {
                    Participation p = new Participation();
                    p.ReadXml(reader);

                    this.otherParticipations.Add(p);
                } while (reader.LocalName == "other_participations");
            }

            if (reader.LocalName == "work_flow_id")
            {
                string workFlowIdType = reader.GetAttribute("type", RmXmlSerializer.XsiNamespace);

                // CM: 06/09/10 when workFlowIdType is null or empty, it's type of OBJECT_REF
                if (string.IsNullOrEmpty(workFlowIdType))
                {
                    this.workflowId = new ObjectRef();
                }
                else
                {
                    this.workflowId = ObjectRef.GetObjectRefByType(workFlowIdType);
                }

                this.workflowId.ReadXml(reader);
            }
        }
示例#10
0
        public async Task <IActionResult> Edit(int id, [Bind("Date,ActiviteId,GroupeId,SalleId,Visible")] Participation participation)
        {
            if (id != participation.ActiviteId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(participation);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ParticipationExists(participation.ActiviteId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ActiviteId"] = new SelectList(_context.Activites, "ActiviteId", "ActiviteId", participation.ActiviteId);
            ViewData["GroupeId"]   = new SelectList(_context.Groupes, "GroupeId", "GroupeId", participation.GroupeId);
            ViewData["SalleId"]    = new SelectList(_context.Lieux, "SalleId", "SalleId", participation.SalleId);
            return(View(participation));
        }
        public static List <Participation> Seed()
        {
            List <Participation> participations = new List <Participation>();

            foreach (Project project in ProjectSeed.Seed())
            {
                Project projectObject = project;

                foreach (Person person1 in PersonSeed.Seed())
                {
                    Participation participation = new Participation(Helper.ConcatGuid(project.Id, person1.Id)) //using concat of projectID and personID
                    {
                        PersonId  = person1.Id,
                        ProjectId = projectObject.Id,
                        Active    = true,
                        Remark    = "remark",
                        MaxWorkingHoursPerWeek = 12,
                    };
                    participations.Add(participation);
                }
            }



            return(participations);
        }
        public async Task GetActiveParticipationsAsync_Should_Include_Project_And_Person()
        {
            //Arrange
            Project       project       = ProjectSeed.Seed().First();
            Person        person        = PersonSeed.Seed().First();
            Participation participation = new Participation()
            {
                ProjectId = project.Id,
                PersonId  = person.Id,
            };

            participationRepositoryMock.Object.Add(participation);
            roosterPlannerContextMock.Object.SaveChanges();

            //Act
            List <Participation> participations =
                await participationRepositoryMock.Object.GetActiveParticipationsAsync(person.Id);

            //Assert
            foreach (Participation participation1 in participations)
            {
                Assert.NotNull(participation1.Project);
                Assert.NotNull(participation1.Person);
            }
        }
        public async Task <ActionResult> ParticipateEvent(Participation model)
        {
            try
            {
                System.Diagnostics.Debug.WriteLine("HElllooooooooooo ");

                UserRegisterModel currentUser = (UserRegisterModel)Session["User"];
                ParticipationId   pid         = new ParticipationId();
                pid.CustomerId = currentUser.userId;
                pid.EventId    = eventstattic.EventId;
                model.Id       = pid;

                var participationJson = await Task.Run(() => JsonConvert.SerializeObject(model));

                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri("http://localhost:8080/springboot-crud-rest/api/v1/events/");
                var content = new StringContent(participationJson.ToString(), Encoding.UTF8, "application/json");
                HttpResponseMessage response;
                response = client.PostAsync("subscribe", content).Result;
                return(RedirectToAction("DisplayClientEvents"));
            }
            catch (Exception)
            {
                ViewBag.eventp = eventstattic;
                return(View(model));
            }
        }
示例#14
0
        /// <summary>
        /// Creates a Participation from a ViewModel.
        /// </summary>
        /// <param name="participationViewModel"></param>
        /// <returns></returns>
        public static Participation CreateParticipation(ParticipationViewModel participationViewModel)
        {
            if (participationViewModel == null)
            {
                return(null);
            }

            Participation participation = new Participation(participationViewModel.Id)
            {
                MaxWorkingHoursPerWeek = participationViewModel.MaxWorkingHoursPerWeek,
                Availabilities         = participationViewModel.Availabilities,
                Remark       = participationViewModel.Remark,
                Active       = participationViewModel.Active,
                LastEditDate = participationViewModel.LastEditDate,
                LastEditBy   = participationViewModel.LastEditBy,
                RowVersion   = participationViewModel.RowVersion
            };

            if (participationViewModel.Person != null)
            {
                participation.Person   = PersonViewModel.CreatePerson(participationViewModel.Person);
                participation.PersonId = participationViewModel.Person.Id;
            }

            if (participationViewModel.Project == null)
            {
                return(participation);
            }
            participation.Project   = ProjectDetailsViewModel.CreateProject(participationViewModel.Project);
            participation.ProjectId = participationViewModel.Project.Id;

            return(participation);
        }
        public async Task <Participation> CreateRedeemParticipationToken(string tinyTokenId, string userId)
        {
            var token = await _db.ParticipationTokens
                        .FirstOrDefaultAsync(s => s.TinyTokenId == tinyTokenId);

            if (token == null)
            {
                throw new NoMatchFoundException("Invalid Token");
            }

            if (DateTime.Compare(token.ExpirationDate, DateTime.UtcNow) < 0)
            {
                throw new SecurityTokenExpiredException("Token is expired");
            }

            var participation = new Participation()
            {
                ParticipationTokenId = token.Id,
                UserId = userId
            };

            //Add new participation entry
            await _db.Participation.AddAsync(participation);

            //Get the token
            var participationToken = await _db.ParticipationTokens.FirstOrDefaultAsync(s => s.Id == token.Id);

            //Decrement remaining uses
            participationToken.UsesRemaining = participationToken.UsesRemaining - 1;

            await _db.SaveChangesAsync();

            return(participation);
        }
示例#16
0
        public List <Participation> GetParticipations()
        {
            List <Participation> returnList = new List <Participation>();
            SqlDataAccess        sda        = new SqlDataAccess();

            sda.openConnection(Globals.ConnectionString);

            #region | SQL QUERY |
            string query = @"SELECT
	                                P.new_sourceofparticipationId ParticipationId
	                                ,P.new_name Name
                                FROM
	                                new_sourceofparticipation P WITH (NOLOCK)
                                WHERE
	                                P.StateCode = 0"    ;
            #endregion
            DataTable dt = sda.getDataTable(query);

            if (dt != null && dt.Rows.Count > 0)
            {
                #region | GET PARTICIPATIONS |
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Participation _participation = new Participation();
                    _participation.ParticipationId = (Guid)dt.Rows[i]["ParticipationId"];
                    _participation.Name            = dt.Rows[i]["Name"] != DBNull.Value ? dt.Rows[i]["Name"].ToString() : string.Empty;

                    returnList.Add(_participation);
                }
                #endregion
            }

            return(returnList);
        }
示例#17
0
        public ChatWindowViewModel(Conversation conversation, IServiceRegistry serviceRegistry)
            : base(serviceRegistry)
        {
            if (!IsInDesignMode)
            {
                userRepository          = ServiceRegistry.GetService <RepositoryManager>().GetRepository <User>();
                participationRepository = (ParticipationRepository)ServiceRegistry.GetService <RepositoryManager>().GetRepository <Participation>();

                clientService = ServiceRegistry.GetService <IClientService>();

                Participation participation = participationRepository.GetParticipationByUserIdandConversationId(clientService.ClientUserId, conversation.Id);
                groupChat = new GroupChatModel(participation);

                contributionMessageFormatter = new ContributionMessageFormatter(clientService.ClientUserId, userRepository);

                userRepository.EntityAdded   += OnUserChanged;
                userRepository.EntityUpdated += OnUserChanged;

                ServiceRegistry.GetService <RepositoryManager>().GetRepository <Conversation>().EntityUpdated += OnConversationUpdated;

                participationRepository.EntityUpdated += OnParticipationUpdated;

                AddUserCommand = new AddUserToConversationCommand(this);

                groupChat.Conversation = conversation;
                groupChat.Users        = GetUsers();

                UpdateConnectedUsersList();

                groupChat.WindowTitle = userRepository.FindEntityById(clientService.ClientUserId).Username;
                groupChat.Title       = GetChatTitle();
            }
        }
示例#18
0
        public IActionResult JoinHappening(int hapId)
        {
            int?logged_id = HttpContext.Session.GetInt32("LoggedUser");

            if (logged_id == null)
            {
                return(RedirectToAction("Index"));
            }
            if (dbContext.Participations.Any(p => p.ParticipantId == (int)logged_id && p.JoiningActivityId == hapId))
            {
                return(RedirectToAction("Home"));
            }
            if (!dbContext.Happenings.Any(h => h.HappeningId == hapId))
            {
                return(RedirectToAction("Home"));
            }

            Participation newP = new Participation();

            newP.ParticipantId     = (int)logged_id;
            newP.JoiningActivityId = hapId;
            dbContext.Participations.Add(newP);
            dbContext.SaveChanges();
            return(RedirectToAction("Home"));
        }
示例#19
0
        /// <summary>
        /// Retourne l'ensemble des participations d'une personne aux listes pour un évènement donné
        /// </summary>
        /// <param name="p"></param>
        /// <param name="p_2"></param>
        /// <returns></returns>
        public List <Participation> getAllParticipations(int pId_personne, int pId_evt)
        {
            String sql = "SELECT pa.id_participation, l.id_liste, l.id_personne, pa.participation "
                         + "from \"personnes\" pe, \"listeCadeaux\" l "
                         + "LEFT OUTER JOIN \"participations\" pa "
                         + "ON pa.id_liste = l.id_liste AND pa.id_personne = " + pId_personne + " "
                         + "WHERE l.id_evenement = " + pId_evt + " AND pe.id_personne = l.id_personne AND pe.id_personne != " + pId_personne + " AND pa.id_participation is not null;";

            try
            {
                DataTable dt = conn.getConnection(sql);

                List <Participation> listeRetour = new List <Participation>();

                foreach (DataRow row in dt.Rows)
                {
                    Participation participation = new Participation();
                    participation.id_participation = (int.Parse(row.ItemArray.GetValue(0).ToString()));
                    participation.id_liste         = (int.Parse(row.ItemArray.GetValue(1).ToString()));
                    participation.id_personne      = pId_personne;
                    participation.participation    = (long.Parse(row.ItemArray.GetValue(3).ToString()));

                    PersonneDAL persService = new PersonneDAL();
                    participation.personne = persService.getInfosPersonne(participation.id_personne);

                    listeRetour.Add(participation);
                }

                return(listeRetour);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int      nIdCourse = Convert.ToInt32(Request.QueryString["Id"]);
                Course   course    = BLL_Course.getCourse(nIdCourse);
                Personne pers      = (Personne)HttpContext.Current.Session["ID"];

                Participation part = BLL_Participation.getUneParticipation(pers, course);

                if (course != null)
                {
                    LBL_TITRE_VALUE.Text       = course.Titre;
                    LBL_DESCRIPTION_VALUE.Text = course.Description;
                    LBL_VILLE_VALUE.Text       = course.Ville;
                    LBL_DATE_DEBUT_VALUE.Text  = course.DateDebut.ToString();
                    LBL_DATE_FIN_VALUE.Text    = course.DateFin.ToString();
                }

                if (part == null)
                {
                    BTN_ANNULER.Visible    = false;
                    BTN_PARTICIPER.Visible = true;
                }
                else
                {
                    BTN_PARTICIPER.Visible = false;
                    BTN_ANNULER.Visible    = true;
                }
            }
        }
示例#21
0
 public void participate(Participation participation)
 {
     participation.GradeId = null;
     participation.Place   = null;
     context.Participation.Add(participation);
     context.SaveChanges();
 }
示例#22
0
        /// <inheritdoc/>
        public string ToDelimitedString()
        {
            CultureInfo culture = CultureInfo.CurrentCulture;

            return(string.Format(
                       culture,
                       StringHelper.StringFormatSequence(0, 23, Configuration.FieldSeparator),
                       Id,
                       ParticipationInstanceId?.ToDelimitedString(),
                       ActionCode,
                       ActionReason?.ToDelimitedString(),
                       Participation?.ToDelimitedString(),
                       ParticipationPerson != null ? string.Join(Configuration.FieldRepeatSeparator, ParticipationPerson.Select(x => x.ToDelimitedString())) : null,
                       ParticipationPersonProviderType?.ToDelimitedString(),
                       ParticipantOrganizationUnitType?.ToDelimitedString(),
                       ParticipationOrganization != null ? string.Join(Configuration.FieldRepeatSeparator, ParticipationOrganization.Select(x => x.ToDelimitedString())) : null,
                       ParticipantLocation != null ? string.Join(Configuration.FieldRepeatSeparator, ParticipantLocation.Select(x => x.ToDelimitedString())) : null,
                       ParticipationDevice != null ? string.Join(Configuration.FieldRepeatSeparator, ParticipationDevice.Select(x => x.ToDelimitedString())) : null,
                       ParticipationBeginDateTimeArrivalTime.HasValue ? ParticipationBeginDateTimeArrivalTime.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ParticipationEndDateTimeDepartureTime.HasValue ? ParticipationEndDateTimeDepartureTime.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ParticipationQualitativeDuration?.ToDelimitedString(),
                       ParticipationAddress != null ? string.Join(Configuration.FieldRepeatSeparator, ParticipationAddress.Select(x => x.ToDelimitedString())) : null,
                       ParticipantTelecommunicationAddress != null ? string.Join(Configuration.FieldRepeatSeparator, ParticipantTelecommunicationAddress.Select(x => x.ToDelimitedString())) : null,
                       ParticipantDeviceIdentifier?.ToDelimitedString(),
                       ParticipantDeviceManufactureDate.HasValue ? ParticipantDeviceManufactureDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ParticipantDeviceExpiryDate.HasValue ? ParticipantDeviceExpiryDate.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       ParticipantDeviceLotNumber,
                       ParticipantDeviceSerialNumber,
                       ParticipantDeviceDonationIdentification?.ToDelimitedString(),
                       ParticipationDeviceType?.ToDelimitedString()
                       ).TrimEnd(Configuration.FieldSeparator.ToCharArray()));
        }
示例#23
0
        private void RechargerParticipation()
        {
            ParticipationsBLL    partBLL  = new ParticipationsBLL();
            ListeIdeesCadeauxBLL listeBLL = new ListeIdeesCadeauxBLL();

            ListeIdeesCadeaux liste      = new ListeIdeesCadeaux();
            Personne          cadeauPour = new Personne();
            Evenement         evt        = new Evenement();

            Personne participationDe = new Personne();

            participationDe.id_personne = int.Parse(Session["personneID"].ToString());

            cadeauPour.id_personne = int.Parse(listeParticipantAyantListe.SelectedItem.Value.ToString());
            evt.id_evenement       = int.Parse(ViewState["evenementId"].ToString());

            liste = listeBLL.getListeIdeesCadeaux(cadeauPour, evt);

            Participation participation = partBLL.getParticipation(liste, participationDe);

            if (participation != null)
            {
                lblValeurParticipationListe.Text = "Votre participation est de : " + participation.participation.ToString() + " €";
            }
            else
            {
                lblValeurParticipationListe.Text = "Votre participation est de : 0 €";
            }
        }
示例#24
0
        /// <summary>
        /// If a user unexpectedly disconnects whilst sending a message, clients will be unaware and continue seeing the user as
        /// typing a message.
        /// This procedure will go through conversations a client is in and forcefully tell other clients that the user has stopped
        /// typing.
        /// </summary>
        /// <remarks>
        /// This could have be done in the Client when a client senses that a user's <see cref="ConnectionStatus" /> has been
        /// modified.
        /// But I'd rather have it as a rule here where a client can use their same
        /// <see cref="EntityNotification{UserNotification}" /> logic.
        /// </remarks>
        /// <param name="userId">The user that disconnected.</param>
        /// <param name="clientManager">Holds the connected clients.</param>
        /// <param name="repositoryManager">Holds the repositories in the system.</param>
        private static void SendUserTypingNotification(int userId, IClientManager clientManager, RepositoryManager repositoryManager)
        {
            var participationRepository = (ParticipationRepository)repositoryManager.GetRepository <Participation>();
            var userRepository          = (UserRepository)repositoryManager.GetRepository <User>();

            IEnumerable <int> conversationIdsUserIsIn = participationRepository.GetAllConversationIdsByUserId(userId);

            foreach (int conversationId in conversationIdsUserIsIn)
            {
                Participation        participation                 = participationRepository.GetParticipationByUserIdandConversationId(userId, conversationId);
                var                  userTyping                    = new UserTyping(false, participation.Id);
                var                  userTypingNotification        = new EntityNotification <UserTyping>(userTyping, NotificationType.Create);
                List <Participation> participationsForConversation = participationRepository.GetParticipationsByConversationId(conversationId);

                List <int> userIdsInConversation = participationsForConversation.Select(x => x.UserId).ToList();

                foreach (int userIdInConversation in userIdsInConversation)
                {
                    User user = userRepository.FindEntityById(userIdInConversation);

                    if (user.ConnectionStatus.UserConnectionStatus != ConnectionStatus.Status.Disconnected)
                    {
                        clientManager.SendMessageToClient(userTypingNotification, userIdInConversation);
                    }
                }
            }
        }
示例#25
0
        /// <summary>
        /// Valide la participation à un événement
        /// </summary>
        public Participation Validate(string eventId, Participation p)
        {
            var participation = _unitOfWork.ParticipantRepository.Find(pa => pa.EventId == eventId && pa.Id == p.Id && pa.UID == p.UID);

            if (participation == null)
            {
                throw new ParticipationNotFoundException("Cette participation n'existe pas");
            }

            participation.Gender    = p.Gender;
            participation.Lastname  = p.Lastname;
            participation.Firstname = p.Firstname;
            //participation.Email = p.Email;
            participation.Phone          = p.Phone;
            participation.Guest          = p.Guest;
            participation.ValidationDate = DateTime.Now;

            _unitOfWork.SaveChanges();

            //Envoi du mail d'invitation
            MailMessage mailMessage = new MailMessage();

            mailMessage.To.Add(participation.Email);
            Tools.Email.Send(mailMessage, "Invitation", participation);

            return(participation);
        }
示例#26
0
        [HttpGet("join/{actId}")]       // JOIN AN ACTIVITY
        public IActionResult JoinActivity(int actId)
        {
            int?          LoggedInUser = HttpContext.Session.GetInt32("UserId");
            Activity      oneActivity  = dbContext.Activities.FirstOrDefault(e => e.CoordinatorId == actId);
            User          thisUser     = dbContext.Users.FirstOrDefault(u => u.UserId == (int)LoggedInUser);
            Participation newPart      = new Participation();

            List <Participation> yourActivities = dbContext.Participations
                                                  .Where(p => p.UserId == (int)LoggedInUser)
                                                  .Include(p => p.Activity)
                                                  .ToList();

            foreach (var part in yourActivities)
            {
                if (part.Activity.StartDate == oneActivity.StartDate)
                {
                    TempData["Overlapping"] = "You're already going to an activity!";
                    return(Redirect($"/activity/{actId}"));
                }
            }
            newPart.Activity   = oneActivity;
            newPart.User       = thisUser;
            newPart.UserId     = (int)LoggedInUser;
            newPart.ActivityId = actId;
            dbContext.Participations.Add(newPart);
            dbContext.SaveChanges();
            return(Redirect("/dashboard"));
        }
        public async Task <IActionResult> PutParticipation(int id, Participation participation)
        {
            if (id != participation.UserId)
            {
                return(BadRequest());
            }

            _context.Entry(participation).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ParticipationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <Participation> > PostParticipation(Participation participation)
        {
            _context.participations.Add(participation);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetParticipation", new { id = participation.Id }, participation));
        }
示例#29
0
        public async Task <IActionResult> Create([FromBody] Participation participation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!await _context.Particuliers.AnyAsync(x => x.Id == participation.ParticulierId) || !await _context.Stickers.AnyAsync(x => x.Id == participation.StickerId))
            {
                return(NotFound());
            }

            if (await _context.Participations.AnyAsync(x => x.ParticulierId == participation.ParticulierId && x.StickerId == participation.StickerId))
            {
                return(Conflict());
            }

            var validParticipation = new Participation {
                ParticulierId = participation.ParticulierId,
                StickerId     = participation.StickerId
            };
            await _context.Participations.AddAsync(validParticipation);

            await _context.SaveChangesAsync();

            return(Ok());
        }
示例#30
0
        /// <summary>
        /// Creates a ViewModel from a Participation.
        /// </summary>
        public static ParticipationViewModel CreateVm(Participation participation)
        {
            if (participation == null)
            {
                return(null);
            }
            ParticipationViewModel vm = new ParticipationViewModel
            {
                Id = participation.Id,
                MaxWorkingHoursPerWeek = participation.MaxWorkingHoursPerWeek,
                Availabilities         = participation.Availabilities,
                Remark       = participation.Remark,
                Active       = participation.Active,
                LastEditDate = participation.LastEditDate,
                LastEditBy   = participation.LastEditBy,
                RowVersion   = participation.RowVersion
            };

            if (participation.Person != null)
            {
                vm.Person = PersonViewModel.CreateVmFromPerson(participation.Person);
            }
            if (participation.Project != null)
            {
                vm.Project = ProjectDetailsViewModel.CreateVm(participation.Project);
            }
            return(vm);
        }
示例#31
0
        public IParticipation GetLatest(string stockCode)
        {
            string url = string.Format(@"http://data.eastmoney.com/stockcomment/{0}.html", stockCode);

            string html = PageReader.GetPageSource(url);
            if (string.IsNullOrEmpty(html))
                return null;

            var htmlDocument = new HtmlDocument();
            htmlDocument.LoadHtml(html);
            var htmlNodes = htmlDocument.DocumentNode;

            Participation partObj = new Participation();

            //数据日期:2015-12-25
            string xpathTime = "/html[1]/body[1]/div[2]/div[2]/div[2]/div[2]/div[1]/div[1]/div[5]/table[1]/tr[1]/td[3]/span[1]";
            var strTime =  Regex.Match(htmlNodes.SelectSingleNode(xpathTime).InnerText, @"\d{4}-\d{2}-\d{2}").Value;
            /// 日期与时间
            DateTime Time = DateTime.MaxValue;
            if (DateTime.TryParse(strTime, out Time))
                partObj.Time = Time.Date;

            //机构参与度为41.08%,属于完全控盘
            string xpathValue = "/html[1]/body[1]/div[2]/div[2]/div[2]/div[2]/div[1]/div[1]/div[5]/table[1]/tr[1]/td[2]/span[1]";
            var strValue = Regex.Match(htmlNodes.SelectSingleNode(xpathValue).InnerText, @"\d+.\d+").Value;
            /// 机构参与度(%) : 45
            double Value = 0;
            if (double.TryParse(strValue, out Value))
                partObj.Value = Value;

            //主力净流入-398.90万,超大单流入7166.17万
            //-398.90
            string xpathMainForceInflows = "/html[1]/body[1]/div[2]/div[2]/div[2]/div[2]/div[1]/div[1]/div[5]/table[1]/tr[2]/td[2]/span[1]/span[1]";
            var strMainForceInflows = htmlNodes.SelectSingleNode(xpathMainForceInflows).InnerText;
            /// 主力净流入
            double MainForceInflows = 0;
            if (double.TryParse(strMainForceInflows, out MainForceInflows))
                partObj.MainForceInflows = MainForceInflows;
            //7166.17
            string xpathSuperLargeInflows = "/html[1]/body[1]/div[2]/div[2]/div[2]/div[2]/div[1]/div[1]/div[5]/table[1]/tr[2]/td[2]/span[1]/span[2]";
            var strSuperLargeInflows = htmlNodes.SelectSingleNode(xpathSuperLargeInflows).InnerText;
            /// 超大单流入
            double SuperLargeInflows = 0;
            if (double.TryParse(strSuperLargeInflows, out SuperLargeInflows))
                partObj.SuperLargeInflows = SuperLargeInflows;

            //最近1日主力成本18.29元,最近20日主力成本17.56元
            string xpathCostPrice = "/html[1]/body[1]/div[2]/div[2]/div[2]/div[2]/div[1]/div[1]/div[5]/table[1]/tr[3]/td[2]/span[1]";
            var strCostPrice = htmlNodes.SelectSingleNode(xpathCostPrice).InnerText;
            var matchs = Regex.Matches(strCostPrice, @"\d+.\d+");
            /// 最近1日主力成本
            double CostPrice1Day = 0;
            if (matchs != null && double.TryParse(matchs.Count > 0 ? matchs[0].Value : "", out CostPrice1Day))
                partObj.CostPrice1Day = CostPrice1Day;

            /// 最近20日主力成本
            double CostPrice20Day = 0;
            if (matchs != null && double.TryParse(matchs.Count > 1 ? matchs[1].Value : "", out CostPrice20Day))
                partObj.CostPrice20Day = CostPrice20Day;

            return partObj;
        }
示例#32
0
 public static Participation CreateParticipation(int ID, global::System.Guid guid, string createdBy, global::System.DateTime createdAt, bool isSuccessfulSaturday, bool isSuccessfulSunday, byte[] timestamp, bool isCertificatePrinted, int occasionID, int personID)
 {
     Participation participation = new Participation();
     participation.ID = ID;
     participation.Guid = guid;
     participation.CreatedBy = createdBy;
     participation.CreatedAt = createdAt;
     participation.IsSuccessfulSaturday = isSuccessfulSaturday;
     participation.IsSuccessfulSunday = isSuccessfulSunday;
     participation.Timestamp = timestamp;
     participation.IsCertificatePrinted = isCertificatePrinted;
     participation.OccasionID = occasionID;
     participation.PersonID = personID;
     return participation;
 }
示例#33
0
 public void AddToParticipations(Participation participation)
 {
     base.AddObject("Participations", participation);
 }