Пример #1
0
        /// <summary>
        ///   Carga los equipos de PRs
        /// </summary>
        /// <history>
        ///   [vku] 09/Jul/2016 Created
        /// </history>
        public async void LoadTeamsPRs(TeamGuestServices team = null)
        {
            try
            {
                status.Visibility = Visibility.Visible;
                int nIndex = 0;
                List <TeamGuestServices> lstTeamsPRs = await BRTeamsGuestServices.GetTeamsGuestServices(_nStatus, _teamFilter);

                dgrTeams.ItemsSource = lstTeamsPRs;

                if (team != null && lstTeamsPRs.Count > 0)
                {
                    team   = lstTeamsPRs.FirstOrDefault(tg => tg.tgID == team.tgID);
                    nIndex = lstTeamsPRs.IndexOf(team);
                }
                GridHelper.SelectRow(dgrTeams, nIndex);

                StatusBarReg.Content = lstTeamsPRs.Count + " Teams.";
                status.Visibility    = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
Пример #2
0
        /// <summary>
        ///   Carga los integrantes
        /// </summary>
        /// <history>
        ///   [vku] 12/Jul/2016 Created
        /// </history>
        public async void LoadIntegrantes(TeamGuestServices team)
        {
            try
            {
                List <Personnel> lstPersonnel = await BRPersonnel.GetPersonnels(blnLiner : true);

                List <Personnel> lstPersonnelIni = await BRPersonnel.GetPersonnels(blnLiner : true);

                List <Personnel> lstliner = new List <Personnel>();
                lstliner.AddRange(lstPersonnel);
                cboIntegrant.ItemsSource = lstPersonnel;
                cboLiner.ItemsSource     = lstliner;
                _lstPersonnel            = lstPersonnel.Where(pe => pe.peTeam == team.tgID && pe.peTeamType == EnumToListHelper.GetEnumDescription(EnumTeamType.TeamPRs) && pe.pePlaceID == team.tglo).ToList();
                _lstOldPersonnel         = lstPersonnelIni.Where(pe => pe.peTeam == team.tgID && pe.peTeamType == EnumToListHelper.GetEnumDescription(EnumTeamType.TeamPRs) && pe.pePlaceID == team.tglo).ToList(); //Cargamos la lista con los datos iniciales

                dgrIntegrants.ItemsSource = _lstPersonnel;

                StatusBarReg.Content = _lstPersonnel.Count + " Integrants.";
                status.Visibility    = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
Пример #3
0
        /// <summary>
        ///   Abre la ventana detalle en modo "detalle" o "edición" dependiendo de sus permisos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [vku] 09/Jul/2016 Created
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            TeamGuestServices teamPRs          = (TeamGuestServices)dgrTeams.SelectedItem;
            frmTeamPRsDetail  frmTeamPRsDetail = new frmTeamPRsDetail();

            frmTeamPRsDetail.Owner    = this;
            frmTeamPRsDetail.oldTeam  = teamPRs;
            frmTeamPRsDetail.enumMode = EnumMode.Edit;
            if (frmTeamPRsDetail.ShowDialog() == true)
            {
                int nIndex = 0;
                List <TeamGuestServices> lstTeams = (List <TeamGuestServices>)dgrTeams.ItemsSource;
                if (ValidateFilter(frmTeamPRsDetail.team))                       //Valida si cumple con los filtros
                {
                    ObjectHelper.CopyProperties(teamPRs, frmTeamPRsDetail.team); //Actualiza los datos
                    lstTeams.Sort((x, y) => string.Compare(x.tgN, y.tgN));       //Ordena la lista
                    nIndex = lstTeams.IndexOf(teamPRs);                          //busca la posición del registro
                }
                else
                {
                    lstTeams.Remove(teamPRs);                      //Quita el registro
                }
                dgrTeams.Items.Refresh();                          //Actualiza la vista
                GridHelper.SelectRow(dgrTeams, nIndex);            //Selecciona el registro
                StatusBarReg.Content = lstTeams.Count + " Teams."; //Actualiza el contador
            }
        }
Пример #4
0
        /// <summary>
        ///  valida que un objeto team cumpla con los filtros actuales
        /// </summary>
        /// <param name="team">Objeto a validar</param>
        /// <returns>True. Si cumple | False. No cumple</returns>
        /// <history>
        ///   [vku] 14/Jul/2016 Created
        /// </history>
        private bool ValidateFilter(TeamGuestServices team)
        {
            if (_nStatus != -1)//Filtro por Status
            {
                if (team.tgA != Convert.ToBoolean(_nStatus))
                {
                    return(false);
                }
            }

            if (!string.IsNullOrWhiteSpace(_teamFilter.tgID))//Filtro por ID
            {
                if (team.tgID != _teamFilter.tgID)
                {
                    return(false);
                }
            }

            if (!string.IsNullOrWhiteSpace(_teamFilter.tgN))//Filtro por descripción
            {
                if (!team.tgN.Contains(_teamFilter.tgN, StringComparison.OrdinalIgnoreCase))
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #5
0
        /// <summary>
        ///   Recarga los datos del grid
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        ///   [vku] 09/Jul/2016 Created
        /// </history>
        private void btnRef_Click(object sender, RoutedEventArgs e)
        {
            TeamGuestServices team = (TeamGuestServices)dgrTeams.SelectedItem;

            LoadTeamsPRs(team);
        }
Пример #6
0
        /// <summary>
        ///   Agrega | Actualiza un equipo de PRs
        /// </summary>
        /// <param name="idUser">Clave de usuario</param>
        /// <param name="team">Objeto a guardar</param>
        /// <param name="blnUpdate">True - Actualiza | False - Agrega</param>
        /// <param name="lstAdd">Personnels a asignar al equipo</param>
        /// <param name="lstDel">Personeels a remover del equipo</param>
        /// <param name="lstChanged">Lista de integrantes que tuvieron cambios</param>
        /// <returns>0. No se guardó | 1. Se guardó | -1. Existe un registro con el mismo ID</returns>
        /// <history>
        ///   [vku] 13/Jul/2016 Created
        /// </history>
        public async static Task <int> SaveTeam(string idUser, TeamGuestServices team, bool blnUpdate, List <Personnel> lstAdd, List <Personnel> lstDel, List <Personnel> lstChanged)
        {
            bool HadPost = false;
            int  nRes    = await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    using (var transaction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                    {
                        try
                        {
                            #region ChangePersonnel
                            if (lstChanged.Count > 0)
                            {
                                foreach (Personnel pe in lstChanged)
                                {
                                    dbContext.Entry(pe).State = EntityState.Modified;
                                }
                            }
                            #endregion

                            #region Update
                            if (blnUpdate)
                            {
                                dbContext.Entry(team).State = EntityState.Modified;
                            }
                            #endregion
                            #region Add
                            else
                            {
                                TeamGuestServices teamVal = dbContext.TeamsGuestServices.Where(te => te.tgID == team.tgID).FirstOrDefault();
                                if (teamVal != null)
                                {
                                    return(-1);
                                }
                                else
                                {
                                    dbContext.TeamsGuestServices.Add(team);
                                }
                            }
                            #endregion

                            #region addPerssonnel
                            if (lstAdd.Count > 0)
                            {
                                dbContext.Personnels.AsEnumerable().Where(pe => lstAdd.Any(pee => pee.peID == pe.peID)).ToList().ForEach(pe =>
                                {
                                    pe.peTeamType = EnumToListHelper.GetEnumDescription(EnumTeamType.TeamPRs);
                                    pe.pePlaceID  = team.tglo;
                                    pe.peTeam     = team.tgID;
                                    if (pe.pepo == "GS" || pe.pepo == "OPC")
                                    {
                                        HadPost = true;
                                    }
                                    if (BRPrograms.GetProgramByLocation(team.tglo) == EnumToListHelper.GetEnumDescription(EnumProgram.Inhouse))
                                    {
                                        pe.pepo = "GS";
                                    }
                                    else
                                    {
                                        pe.pepo = "OPC";
                                    }

                                    DateTime dtmServerDate = BRHelpers.GetServerDateTime();

                                    TeamLog teamLog     = new TeamLog();
                                    teamLog.tlDT        = dtmServerDate;
                                    teamLog.tlChangedBy = idUser;
                                    teamLog.tlpe        = pe.peID;
                                    teamLog.tlTeamType  = pe.peTeamType;
                                    teamLog.tlPlaceID   = pe.pePlaceID;
                                    teamLog.tlTeam      = pe.peTeam;
                                    dbContext.TeamsLogs.Add(teamLog);
                                    if (HadPost == false)
                                    {
                                        PostLog postLog     = new PostLog();
                                        postLog.ppChangedBy = idUser;
                                        postLog.ppDT        = dtmServerDate;
                                        postLog.pppe        = pe.peID;
                                        postLog.pppo        = pe.pepo;
                                        dbContext.PostsLogs.Add(postLog);
                                    }
                                });
                            }
                            #endregion

                            #region del Personnel
                            if (lstDel.Count > 0)
                            {
                                dbContext.Personnels.AsEnumerable().Where(pe => lstDel.Any(pee => pee.peID == pe.peID)).ToList().ForEach(pe =>
                                {
                                    pe.peTeamType = null;
                                    pe.pePlaceID  = null;
                                    pe.peTeam     = null;
                                    pe.pepo       = null;
                                    pe.peLinerID  = null;

                                    DateTime dtmServerDate = BRHelpers.GetServerDateTime();

                                    TeamLog teamLog     = new TeamLog();
                                    teamLog.tlDT        = dtmServerDate;
                                    teamLog.tlChangedBy = idUser;
                                    teamLog.tlpe        = pe.peID;
                                    teamLog.tlTeamType  = pe.peTeamType;
                                    teamLog.tlPlaceID   = pe.pePlaceID;
                                    teamLog.tlTeam      = pe.peTeam;
                                    dbContext.TeamsLogs.Add(teamLog);

                                    PostLog postLog     = new PostLog();
                                    postLog.ppChangedBy = idUser;
                                    postLog.ppDT        = dtmServerDate;
                                    postLog.pppe        = pe.peID;
                                    postLog.pppo        = pe.pepo;
                                    dbContext.PostsLogs.Add(postLog);
                                });
                            }
                            #endregion

                            int nSave = dbContext.SaveChanges();
                            transaction.Commit();
                            return(nSave);
                        }
                        catch
                        {
                            transaction.Rollback();
                            return(0);
                        }
                    }
                }
            });

            return(nRes);
        }
Пример #7
0
        /// <summary>
        /// Obtiene registros del catalogo TeamGuestServices
        /// </summary>
        /// <param name="nStatus">-1. Todos | 0. Inactivos | 1. Activos</param>
        /// <param name="teamGuestServices">Objeto con filtros adicionales</param>
        /// <returns>Lista de tipo teamGuestServices</returns>
        /// <history>
        /// [emoguel] created 27/04/2016
        /// [vku] 09/Jul/2016 Modified. Se agrego asincronía
        /// </history>
        public async static Task <List <TeamGuestServices> > GetTeamsGuestServices(int nStatus = -1, TeamGuestServices teamGuestServices = null)
        {
            List <TeamGuestServices> lstTeamGuestServices = new List <TeamGuestServices>();
            await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    var query = from tg in dbContext.TeamsGuestServices
                                select tg;

                    if (nStatus != -1)//Filtro por estatus
                    {
                        bool blnStatus = Convert.ToBoolean(nStatus);
                        query          = query.Where(tg => tg.tgA == blnStatus);
                    }

                    if (teamGuestServices != null)
                    {
                        if (!string.IsNullOrWhiteSpace(teamGuestServices.tglo))//Filtro por location
                        {
                            query = query.Where(tg => tg.tglo == teamGuestServices.tglo);
                        }

                        if (!string.IsNullOrWhiteSpace(teamGuestServices.tgID))//Filtro por ID
                        {
                            query = query.Where(tg => tg.tgID == teamGuestServices.tgID);
                        }

                        if (!string.IsNullOrWhiteSpace(teamGuestServices.tgN))//Filtro por descripción
                        {
                            query = query.Where(tg => tg.tgN.Contains(teamGuestServices.tgN));
                        }

                        if (!string.IsNullOrWhiteSpace(teamGuestServices.tgLeader))//Filtro por leader
                        {
                            query = query.Where(tg => tg.tgLeader == teamGuestServices.tgLeader);
                        }
                    }
                    lstTeamGuestServices = query.OrderBy(tg => tg.tgN).ToList();
                }
            });

            return(lstTeamGuestServices);
        }