示例#1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="pResourceSchedulingList"></param>
        /// <param name="userId"></param>
        public static void Create(ResourceSchedulingList pResourceSchedulingList,Guid userId)
        {
            ResourceScheduling r = null;
            DateTime creationDate = System.DateTime.Now;
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                foreach (ResourceSchedulingBE rbe in pResourceSchedulingList)
                {
                    r = new ResourceScheduling();

                    r.CreationDate = creationDate;
                    r.CreationUserId = userId;
                    r.DateEnd = rbe.DateEnd;
                    r.DateStart = rbe.DateStart;
                    r.Description = rbe.Description;
                    r.Duration = rbe.Duration;
                    r.TimeEnd = rbe.TimeEnd;
                    r.TimeStart = rbe.TimeStart;
                    r.ResourceId = rbe.ResourceId;
                    r.WeekDays = rbe.WeekDays;
                    r.HealthInstitutionId = rbe.HealthInstitutionId;
                    dc.ResourceSchedulings.AddObject(r);
                }
                dc.SaveChanges();

            }
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pResourceSchedulingList"></param>
        /// <param name="userId"></param>
        public static void Create(ResourceSchedulingList pResourceSchedulingList, Guid userId)
        {
            ResourceScheduling r            = null;
            DateTime           creationDate = System.DateTime.Now;

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                foreach (ResourceSchedulingBE rbe in pResourceSchedulingList)
                {
                    r = new ResourceScheduling();

                    r.CreationDate        = creationDate;
                    r.CreationUserId      = userId;
                    r.DateEnd             = rbe.DateEnd;
                    r.DateStart           = rbe.DateStart;
                    r.Description         = rbe.Description;
                    r.Duration            = rbe.Duration;
                    r.TimeEnd             = rbe.TimeEnd;
                    r.TimeStart           = rbe.TimeStart;
                    r.ResourceId          = rbe.ResourceId;
                    r.WeekDays            = rbe.WeekDays;
                    r.HealthInstitutionId = rbe.HealthInstitutionId;
                    dc.ResourceSchedulings.AddObject(r);
                }
                dc.SaveChanges();
            }
        }
示例#3
0
        public static void Update(ResourceSchedulingList resourceSchedulingList, Guid userId)
        {
            ResourceScheduling r_db = null;
            DateTime updateDate = System.DateTime.Now;
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                foreach (ResourceSchedulingBE rbe in resourceSchedulingList)
                {

                    r_db = dc.ResourceSchedulings.Where(p => p.IdSheduler.Equals(rbe.IdSheduler)).FirstOrDefault<ResourceScheduling>();

                    r_db.UpdatedDate = updateDate;
                    r_db.UpdateUserId = userId;

                    r_db.DateEnd = rbe.DateEnd;
                    r_db.DateStart = rbe.DateStart;
                    r_db.Description = rbe.Description;
                    r_db.Duration = rbe.Duration;
                    r_db.TimeEnd = rbe.TimeEnd;
                    r_db.TimeStart = rbe.TimeStart;
                    
                    r_db.WeekDays = rbe.WeekDays;
                    
                }
                dc.SaveChanges();

            }
        }
示例#4
0
        public static void Update(ResourceSchedulingList resourceSchedulingList, Guid userId)
        {
            ResourceScheduling r_db       = null;
            DateTime           updateDate = System.DateTime.Now;

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                foreach (ResourceSchedulingBE rbe in resourceSchedulingList)
                {
                    r_db = dc.ResourceSchedulings.Where(p => p.IdSheduler.Equals(rbe.IdSheduler)).FirstOrDefault <ResourceScheduling>();

                    r_db.UpdatedDate  = updateDate;
                    r_db.UpdateUserId = userId;

                    r_db.DateEnd     = rbe.DateEnd;
                    r_db.DateStart   = rbe.DateStart;
                    r_db.Description = rbe.Description;
                    r_db.Duration    = rbe.Duration;
                    r_db.TimeEnd     = rbe.TimeEnd;
                    r_db.TimeStart   = rbe.TimeStart;

                    r_db.WeekDays = rbe.WeekDays;
                }
                dc.SaveChanges();
            }
        }
        /// <summary>
        /// Valida la overlaping de horarios
        /// Si todo esta bien returna True
        /// </summary>
        /// <param name="pResourceSchedulingBE"></param>
        /// <returns></returns>
        Boolean ValidateIntersection(ResourceSchedulingBE pResourceSchedulingBE)
        {
            TimeInterval interva1 = null;
            TimeInterval interva2 = null;

            interva2 = new TimeInterval(
                Fwk.HelperFunctions.DateFunctions.BeginningOfTimes.AddHours(pResourceSchedulingBE.TimeStart_timesp.TotalHours),
                Fwk.HelperFunctions.DateFunctions.BeginningOfTimes.AddHours(pResourceSchedulingBE.TimeEnd_timesp.TotalHours));

            foreach (ResourceSchedulingBE r in ResourceSchedulingList.Where(p => !p.IdSheduler.Equals(pResourceSchedulingBE.IdSheduler)))
            {
                //Si no hay dias en comun no hay problema
                if (!r.HasDaysInCommon(pResourceSchedulingBE.WeekDays_BinArray))
                {
                    return(true);
                }
                //Si tienen dias en comun hay que verificar que no se overlapen los horarios
                interva1 = new TimeInterval(
                    Fwk.HelperFunctions.DateFunctions.BeginningOfTimes.AddHours(r.TimeStart_timesp.TotalHours),
                    Fwk.HelperFunctions.DateFunctions.BeginningOfTimes.AddHours(r.TimeEnd_timesp.TotalHours));


                if (interva1.IntersectsWithExcludingBounds(interva2))
                {
                    return(false);
                }

                //bool val3 = interva1.IntersectsWith(interva2);
            }
            return(true);
        }
示例#6
0
        public static void UpdateResourceSheduling(ResourceSchedulingBE resourceSchedulingBE, Guid healthInstId)
        {
            ResourceSchedulingList list = new ResourceSchedulingList();

            list.Add(resourceSchedulingBE);
            UpdateResourceScheduling(list, healthInstId);
        }
示例#7
0
        public static void CreateResourceScheduling(ResourceSchedulingBE pResourceScheduling, Guid healthInstId)
        {
            ResourceSchedulingList list = new ResourceSchedulingList();

            pResourceScheduling.HealthInstitutionId = healthInstId;
            list.Add(pResourceScheduling);
            CreateResourceScheduling(list, healthInstId);
        }
        void Update_ShiftsControls()
        {
            if (DesignMode)
            {
                return;
            }
            if (SelectedProfesionalBE == null)
            {
                return;
            }
            //Obtener la programacion del profesional
            RetriveResourceSchedulingAndAppoinmentsRes res = ServiceCalls.RetriveResourceSchedulingAndAppoinments(SelectedProfesionalBE.IdProfesional, CurrentDateTime, false, ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

            if (uc_ShiftsControls1.profesional != SelectedProfesionalBE)
            {
                if (SelectedProfesionalBE.Foto != null)
                {
                    if (SelectedProfesionalBE.Foto != null)
                    {
                        this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch;
                        pictureEdit1.Image = Fwk.HelperFunctions.TypeFunctions.ConvertByteArrayToImage(SelectedProfesionalBE.Foto);
                    }
                    else
                    {
                        this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Clip;
                        if (SelectedProfesionalBE.Sexo.Equals((Int16)Sexo.Masculino))
                        {
                            pictureEdit1.Image = Health.Front.Base.Properties.Resource.User_M;
                        }
                        else
                        {
                            pictureEdit1.Image = Health.Front.Base.Properties.Resource.User_F;
                        }
                    }
                }


                uc_ShiftsControls1.profesional = SelectedProfesionalBE;



                lblProfesional.Text  = SelectedProfesionalBE.ApellidoNombre;
                lblEspesialidad.Text = SelectedProfesionalBE.NombreEspecialidad;
            }

            if (uc_ShiftsControls1.Date != CurrentDateTime)
            {
                uc_ShiftsControls1.Date   = CurrentDateTime;
                lblFechaSeleccionada.Text = CurrentDateTime.ToLongDateString();
            }

            uc_ShiftsControls1.ShiftSchedulingList = res.BusinessData.ResourceSchedulerList;
            uc_ShiftsControls1.AppointmentList     = res.BusinessData.AppoimentsList;
            ProfesionalSchedulerList = res.BusinessData.ResourceSchedulerList;

            lblDAysWeek.Text = uc_ShiftsControls1.ShiftSchedulingList.GetCommonDays().Replace("|", ", ");
            uc_ShiftsControls1.Refresh();
        }
示例#9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="list"></param>
        /// <param name="healthInstId"></param>
        public static void CreateResourceScheduling(ResourceSchedulingList list, Guid healthInstId)
        {
            CreateResourceSchedulingReq req = new CreateResourceSchedulingReq();

            list.ForEach(p => p.HealthInstitutionId = healthInstId);
            req.BusinessData = list;
            req.ContextInformation.UserId = frmBase_TabForm.IndentityUserInfo.ProviderId.ToString();
            req.ContextInformation.AppId  = Controller.CurrentHealthInstitution.HealthInstitutionId.ToString();

            CreateResourceSchedulingRes res = req.ExecuteService <CreateResourceSchedulingReq, CreateResourceSchedulingRes>(req);

            if (res.Error != null)
            {
                throw Fwk.Exceptions.ExceptionHelper.ProcessException(res.Error);
            }
        }
示例#10
0
        void Update_ShiftsControls()
        {
            if (DesignMode)
            {
                return;
            }
            if (SelectedProfesionalBE == null)
            {
                return;
            }
            RetriveResourceSchedulingAndAppoinmentsRes res = null;

            try
            {
                res = GetProfesionalSchedule(SelectedProfesionalBE.IdProfesional, CurrentDateTime);
            }
            catch (Exception ex)
            {
                this.ExceptionViewer.Show(ex);
                return;
            }

            if (uc_ShiftsControls1.profesional != SelectedProfesionalBE)
            {
                pictureBox1.Image = Fwk.HelperFunctions.TypeFunctions.ConvertByteArrayToImage(SelectedProfesionalBE.Foto);

                uc_ShiftsControls1.profesional = SelectedProfesionalBE;



                lblProfesional.Text  = SelectedProfesionalBE.ApellidoNombre;
                lblEspesialidad.Text = SelectedProfesionalBE.NombreEspecialidad;
            }

            if (uc_ShiftsControls1.Date != CurrentDateTime)
            {
                uc_ShiftsControls1.Date   = CurrentDateTime;
                lblFechaSeleccionada.Text = CurrentDateTime.ToLongDateString();
            }

            uc_ShiftsControls1.ShiftSchedulingList = res.BusinessData.ResourceSchedulerList;
            uc_ShiftsControls1.AppointmentList     = res.BusinessData.AppoimentsList;
            ProfesionalSchedulerList = res.BusinessData.ResourceSchedulerList;

            lblDAysWeek.Text = uc_ShiftsControls1.ShiftSchedulingList.GetCommonDays().Replace("|", ", ");
            uc_ShiftsControls1.Refresh();
        }
示例#11
0
        /// <summary>
        /// Retorna la programacion de turnos de un determinado recurso para una institucion determinada
        /// </summary>
        /// <param name="resourceId">Recurso</param>
        /// <param name="healthInstId">Opcional</param>
        /// <returns></returns>
        public static ResourceSchedulingList RetriveBy_ResourceId(int resourceId, Guid?healthInstId)
        {
            ResourceSchedulingList list = new ResourceSchedulingList();

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                var resourceScheduling_db = dc.ResourceSchedulings.Where <ResourceScheduling>(p => p.ResourceId.Value.Equals(resourceId) &&
                                                                                              (!healthInstId.HasValue || p.HealthInstitutionId.Value.Equals(healthInstId.Value)));

                foreach (ResourceScheduling r in resourceScheduling_db)
                {
                    ResourceSchedulingBE wResourceScheduling = (ResourceSchedulingBE)r;
                    list.Add(wResourceScheduling);
                }
            }
            return(list);
        }
示例#12
0
        /// <summary>
        /// Retorna la programacion de turnos de un determinado recurso para una institucion determinada 
        /// </summary>
        /// <param name="resourceId">Recurso</param>
        /// <param name="healthInstId">Opcional</param>
        /// <returns></returns>
        public static ResourceSchedulingList RetriveBy_ResourceId(int resourceId,Guid? healthInstId)
        {
            ResourceSchedulingList list = new ResourceSchedulingList ();

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                var resourceScheduling_db = dc.ResourceSchedulings.Where<ResourceScheduling>(p => p.ResourceId.Value.Equals(resourceId) 
                                        && (!healthInstId.HasValue || p.HealthInstitutionId.Value.Equals(healthInstId.Value)));

                foreach (ResourceScheduling r in resourceScheduling_db)
                {
                    ResourceSchedulingBE wResourceScheduling = (ResourceSchedulingBE)r;
                    list.Add(wResourceScheduling);
                }
            }
            return list;
        }
        private void CreateResourceScheduling(ResourceSchedulingBE currentShiftSheduling)
        {
            using (frmResouceScheduling frm = new frmResouceScheduling(profesionalBE.IdProfesional))
            {
                if (this.resourceSchedulingList == null)
                {
                    this.resourceSchedulingList = new ResourceSchedulingList();
                }

                if (currentShiftSheduling != null)
                {
                    frm.SchedulerShift = currentShiftSheduling;
                    frm.State          = Fwk.Bases.EntityUpdateEnum.UPDATED;
                }
                else
                {
                    frm.State = Fwk.Bases.EntityUpdateEnum.NEW;
                }

                frm.ResourceSchedulingList = resourceSchedulingList;


                if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    frm.SchedulerShift.EntityState = Fwk.Bases.EntityState.Added;

                    if (frm.State == Fwk.Bases.EntityUpdateEnum.NEW)
                    {
                        frm.SchedulerShift.ResourceId = profesionalBE.IdProfesional;
                        resourceSchedulingList.Add(frm.SchedulerShift);
                        schedulerShiftBindingSource.DataSource = resourceSchedulingList;
                    }



                    gridControl1.RefreshDataSource();
                }
            }
        }
        /// <summary>
        /// Crea o actualiza informacion del profeional
        /// </summary>
        /// <returns></returns>
        internal bool CreateOrUpdate()
        {
            User wUser = null;

            if (uc_Persona1.HasErrors())
            {
                xtraTabControl1.SelectedTabPage = xtraTabPage1;
                return(false);
            }
            if (HasErrors())
            {
                return(false);
            }
            try
            {
                uc_Persona1.SetPersona();
                uc_MedioContacto1.SetPersona();
                profesionalBE.Persona = uc_Persona1.Persona;

                profesionalBE.Matricula      = this.txtMatricula.Text;
                profesionalBE.IdEspecialidad = (int)this.cmbEspecialidad.EditValue;
                profesionalBE.IdProfesion    = (int)this.cmbProfecion.EditValue;

                if (State == Fwk.Bases.EntityUpdateEnum.NEW)
                {
                    wUser             = new User();
                    wUser.UserName    = txtUsername.Text;
                    wUser.Password    = txtPassword.Text.Trim();
                    wUser.IsApproved  = true;
                    wUser.IsLockedOut = false;

                    List <String> wNewRolList = GetCheckedRolList();

                    wUser.Roles = wNewRolList.ToArray();

                    ServiceCalls.CrearProfesional(profesionalBE, wUser);
                    if (resourceSchedulingList != null && resourceSchedulingList.Count != 0)
                    {
                        ServiceCalls.CreateResourceScheduling(resourceSchedulingList, ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);
                    }

                    this.MessageViewer.Show(String.Format("{0}, se creo con exito", profesionalBE.Persona.ApellidoNombre.Trim()));
                }

                if (State == Fwk.Bases.EntityUpdateEnum.UPDATED)
                {
                    if (CheckRolesChanged())
                    {
                        wUser            = new User();
                        wUser.UserName   = txtUsername.Text;
                        wUser.ProviderId = profesionalBE.Persona.UserId;
                        wUser.Roles      = GetCheckedRolList().ToArray();
                    }

                    ServiceCalls.UpdateProfesional(profesionalBE, wUser, ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

                    //La lista de las posibles actualizaciones no se envian en este metodo ya que se actualizan automaticamente cuando se trata de un Patient en state = UPDATED
                    var varlist = resourceSchedulingList.Where(p => p.EntityState.Equals(Fwk.Bases.EntityState.Added)).ToList <ResourceSchedulingBE>();
                    ResourceSchedulingList list = new ResourceSchedulingList();
                    list.AddRange(varlist);
                    if (list.Count != 0)
                    {
                        ServiceCalls.CreateResourceScheduling(list, ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);
                    }

                    this.MessageViewer.Show(String.Format("{0}, se actualizó con exito", profesionalBE.Persona.ApellidoNombre.Trim()));
                }
            }
            catch (Exception ex)
            {
                this.ExceptionViewer.Show(ex);
                return(false);
            }
            return(true);
        }
示例#15
0
        void Update_ShiftsControls()
        {
            if (DesignMode) return;
            if (SelectedProfesionalBE == null) return;
            RetriveResourceSchedulingAndAppoinmentsRes res = null;
            try
            {
                res = GetProfesionalSchedule(SelectedProfesionalBE.IdProfesional, CurrentDateTime);
            }
            catch (Exception ex)
            {
                this.ExceptionViewer.Show(ex);
                return;
            }

            if (uc_ShiftsControls1.profesional != SelectedProfesionalBE)
            {
                pictureBox1.Image = Fwk.HelperFunctions.TypeFunctions.ConvertByteArrayToImage(SelectedProfesionalBE.Foto);

                uc_ShiftsControls1.profesional = SelectedProfesionalBE;



                lblProfesional.Text = SelectedProfesionalBE.ApellidoNombre;
                lblEspesialidad.Text = SelectedProfesionalBE.NombreEspecialidad;
            }

            if (uc_ShiftsControls1.Date != CurrentDateTime)
            {
                uc_ShiftsControls1.Date = CurrentDateTime;
                lblFechaSeleccionada.Text = CurrentDateTime.ToLongDateString();
            }

            uc_ShiftsControls1.ShiftSchedulingList = res.BusinessData.ResourceSchedulerList;
            uc_ShiftsControls1.AppointmentList = res.BusinessData.AppoimentsList;
            ProfesionalSchedulerList = res.BusinessData.ResourceSchedulerList;

            lblDAysWeek.Text = uc_ShiftsControls1.ShiftSchedulingList.GetCommonDays().Replace("|", ", ");
            uc_ShiftsControls1.Refresh();

        }
        /// <summary>
        /// Se produce despues de Load (uc_Profesionales_Card_Load) y 
        /// Antes del load del formujlario
        /// </summary>
        /// <param name="idProfesional"></param>
        /// <param name="state"></param>
        internal void Populate(int idProfesional, EntityUpdateEnum state)
        {
            //El prof puede modificar sus propios datos
            if (idProfesional.Equals(ServiceCalls.CurrentProfesional.IdProfesional))
            {
                uc_MedioContacto1.Enabled = panelControl2.Enabled = uc_Persona1.Enabled = true;
            }

            this.State = state;
            if (State == Fwk.Bases.EntityUpdateEnum.NEW)
            {
                profesionalBE = new ProfesionalBE();
                profesionalBE.Persona = new PersonaBE();
                this.lblTitle.Text = "Alta de profesional";
            }

            if (State == Fwk.Bases.EntityUpdateEnum.UPDATED || State == Fwk.Bases.EntityUpdateEnum.NONE)
            {
                btnCheckUserName.Enabled = false;
                txtUsername.Properties.ReadOnly = true;
                GetProfesionalRes res = ServiceCalls.GetProfesional(idProfesional, true, true,false,null,ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

                profesionalBE = res.BusinessData.profesional;
                resourceSchedulingList = res.BusinessData.ResourceSchedulerList;
                profesionalRolList = res.BusinessData.User.Roles;
                
                this.lblTitle.Text = String.Concat("Targeta del profesional", "  ", profesionalBE.Persona.ApellidoNombre);
            }

            uc_Persona1.Populate(profesionalBE.Persona, State);
            txtUsername.Text = profesionalBE.UserName;
            txtMatricula.Text = profesionalBE.Matricula;
            schedulerShiftBindingSource.DataSource = resourceSchedulingList;
            gridView1.RefreshData();


            //cmbEspecialidad.Properties.DataSource = _EspecialidadList.Where(p => p.IdParametroRef.Equals(profesionalBE.IdProfesion));

            int index = 0;
            index = cmbEspecialidad.Properties.GetDataSourceRowIndex("IdParametro", (int)CommonValuesEnum.Ninguno);
            if (State == Fwk.Bases.EntityUpdateEnum.NEW)
            {
                cmbEspecialidad.ItemIndex = index;
                cmbProfecion.ItemIndex = 0;
            }
            else
            {
                if (profesionalBE.IdEspecialidad.HasValue)
                {
                    index = cmbEspecialidad.Properties.GetDataSourceRowIndex("IdParametro", profesionalBE.IdEspecialidad);
                }
                cmbEspecialidad.ItemIndex = index;
                
                index = cmbProfecion.Properties.GetDataSourceRowIndex("IdParametro", profesionalBE.IdProfesion);
                cmbProfecion.ItemIndex = index;
            }

            cmbEspecialidad.Refresh();
            cmbProfecion.Refresh();

            MachRolesGrid(profesionalRolList);



            uc_MedioContacto1.Persona = profesionalBE.Persona;
            uc_Persona1.Refresh();
            uc_MedioContacto1.Init();
            this.cmbProfecion.EditValueChanged += new System.EventHandler(this.cmbProfecion_EditValueChanged);
        }
        /// <summary>
        /// Crea o actualiza informacion del profeional
        /// </summary>
        /// <returns></returns>
        internal bool CreateOrUpdate()
        {
            User wUser = null;
            if (uc_Persona1.HasErrors())
            {
                xtraTabControl1.SelectedTabPage = xtraTabPage1;
                return false;
            }
            if (HasErrors()) return false;
            try
            {
                uc_Persona1.SetPersona();
                uc_MedioContacto1.SetPersona();
                profesionalBE.Persona = uc_Persona1.Persona;

                profesionalBE.Matricula = this.txtMatricula.Text;
                profesionalBE.IdEspecialidad = (int)this.cmbEspecialidad.EditValue;
                profesionalBE.IdProfesion = (int)this.cmbProfecion.EditValue;

                if (State == Fwk.Bases.EntityUpdateEnum.NEW)
                {
                    wUser = new User();
                    wUser.UserName = txtUsername.Text;
                    wUser.Password = txtPassword.Text.Trim();
                    wUser.IsApproved = true;
                    wUser.IsLockedOut = false;

                    List<String> wNewRolList = GetCheckedRolList();

                    wUser.Roles = wNewRolList.ToArray();

                    ServiceCalls.CrearProfesional(profesionalBE, wUser);
                    if (resourceSchedulingList != null && resourceSchedulingList.Count != 0)
                        ServiceCalls.CreateResourceScheduling(resourceSchedulingList,ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

                    this.MessageViewer.Show(String.Format("{0}, se creo con exito", profesionalBE.Persona.ApellidoNombre.Trim()));
                }

                if (State == Fwk.Bases.EntityUpdateEnum.UPDATED)
                {
                    if (CheckRolesChanged())
                    {
                        wUser = new User();
                        wUser.UserName = txtUsername.Text;
                        wUser.ProviderId = profesionalBE.Persona.UserId;
                        wUser.Roles = GetCheckedRolList().ToArray();
                    }

                    ServiceCalls.UpdateProfesional(profesionalBE, wUser,ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

                    //La lista de las posibles actualizaciones no se envian en este metodo ya que se actualizan automaticamente cuando se trata de un Patient en state = UPDATED
                    var varlist = resourceSchedulingList.Where(p => p.EntityState.Equals(Fwk.Bases.EntityState.Added)).ToList<ResourceSchedulingBE>();
                    ResourceSchedulingList list = new ResourceSchedulingList();
                    list.AddRange(varlist);
                    if (list.Count != 0)
                        ServiceCalls.CreateResourceScheduling(list,ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

                    this.MessageViewer.Show(String.Format("{0}, se actualizó con exito", profesionalBE.Persona.ApellidoNombre.Trim()));
                }
            }
            catch (Exception ex)
            {
                this.ExceptionViewer.Show(ex);
                return false;
            }
            return true;

        }
        private void CreateResourceScheduling(ResourceSchedulingBE currentShiftSheduling)
        {
            using (frmResouceScheduling frm = new frmResouceScheduling(profesionalBE.IdProfesional))
            {
                if (this.resourceSchedulingList == null)
                    this.resourceSchedulingList = new ResourceSchedulingList();

                if (currentShiftSheduling != null)
                {
                    frm.SchedulerShift = currentShiftSheduling;
                    frm.State = Fwk.Bases.EntityUpdateEnum.UPDATED;
                }
                else
                    frm.State = Fwk.Bases.EntityUpdateEnum.NEW;

                frm.ResourceSchedulingList = resourceSchedulingList;

                
                if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    frm.SchedulerShift.EntityState = Fwk.Bases.EntityState.Added;

                    if( frm.State == Fwk.Bases.EntityUpdateEnum.NEW)
                    {
                        frm.SchedulerShift.ResourceId = profesionalBE.IdProfesional;
                        resourceSchedulingList.Add(frm.SchedulerShift);
                        schedulerShiftBindingSource.DataSource = resourceSchedulingList;
                    }
                        

                    
                    gridControl1.RefreshDataSource();
                }
            }
        }
示例#19
0
        public static void UpdateResourceScheduling(ResourceSchedulingList list, Guid healthInstId)
        {
            UpdateResourceSchedulingReq req = new UpdateResourceSchedulingReq();
            list.ForEach(p => p.HealthInstitutionId = healthInstId);
            req.BusinessData = list;
            
            req.ContextInformation.UserId = frmBase_TabForm.IndentityUserInfo.ProviderId.ToString();
            req.ContextInformation.AppId = Controller.CurrentHealthInstitution.HealthInstitutionId.ToString();

            UpdateResourceSchedulingRes res = req.ExecuteService<UpdateResourceSchedulingReq, UpdateResourceSchedulingRes>(req);


            if (res.Error != null)
                throw Fwk.Exceptions.ExceptionHelper.ProcessException(res.Error);

        }
示例#20
0
 public static void UpdateResourceSheduling(ResourceSchedulingBE resourceSchedulingBE, Guid healthInstId)
 {
     ResourceSchedulingList list = new ResourceSchedulingList();
     list.Add(resourceSchedulingBE);
     UpdateResourceScheduling(list, healthInstId);
 }
示例#21
0
 public static void CreateResourceScheduling(ResourceSchedulingBE pResourceScheduling, Guid healthInstId)
 {
     ResourceSchedulingList list = new ResourceSchedulingList();
     pResourceScheduling.HealthInstitutionId = healthInstId;
     list.Add(pResourceScheduling);
     CreateResourceScheduling(list, healthInstId);
 }
        /// <summary>
        /// Se produce despues de Load (uc_Profesionales_Card_Load) y
        /// Antes del load del formujlario
        /// </summary>
        /// <param name="idProfesional"></param>
        /// <param name="state"></param>
        internal void Populate(int idProfesional, EntityUpdateEnum state)
        {
            //El prof puede modificar sus propios datos
            if (idProfesional.Equals(ServiceCalls.CurrentProfesional.IdProfesional))
            {
                uc_MedioContacto1.Enabled = panelControl2.Enabled = uc_Persona1.Enabled = true;
            }

            this.State = state;
            if (State == Fwk.Bases.EntityUpdateEnum.NEW)
            {
                profesionalBE         = new ProfesionalBE();
                profesionalBE.Persona = new PersonaBE();
                this.lblTitle.Text    = "Alta de profesional";
            }

            if (State == Fwk.Bases.EntityUpdateEnum.UPDATED || State == Fwk.Bases.EntityUpdateEnum.NONE)
            {
                btnCheckUserName.Enabled        = false;
                txtUsername.Properties.ReadOnly = true;
                GetProfesionalRes res = ServiceCalls.GetProfesional(idProfesional, true, true, false, null, ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

                profesionalBE          = res.BusinessData.profesional;
                resourceSchedulingList = res.BusinessData.ResourceSchedulerList;
                profesionalRolList     = res.BusinessData.User.Roles;

                this.lblTitle.Text = String.Concat("Targeta del profesional", "  ", profesionalBE.Persona.ApellidoNombre);
            }

            uc_Persona1.Populate(profesionalBE.Persona, State);
            txtUsername.Text  = profesionalBE.UserName;
            txtMatricula.Text = profesionalBE.Matricula;
            schedulerShiftBindingSource.DataSource = resourceSchedulingList;
            gridView1.RefreshData();


            //cmbEspecialidad.Properties.DataSource = _EspecialidadList.Where(p => p.IdParametroRef.Equals(profesionalBE.IdProfesion));

            int index = 0;

            index = cmbEspecialidad.Properties.GetDataSourceRowIndex("IdParametro", (int)CommonValuesEnum.Ninguno);
            if (State == Fwk.Bases.EntityUpdateEnum.NEW)
            {
                cmbEspecialidad.ItemIndex = index;
                cmbProfecion.ItemIndex    = 0;
            }
            else
            {
                if (profesionalBE.IdEspecialidad.HasValue)
                {
                    index = cmbEspecialidad.Properties.GetDataSourceRowIndex("IdParametro", profesionalBE.IdEspecialidad);
                }
                cmbEspecialidad.ItemIndex = index;

                index = cmbProfecion.Properties.GetDataSourceRowIndex("IdParametro", profesionalBE.IdProfesion);
                cmbProfecion.ItemIndex = index;
            }

            cmbEspecialidad.Refresh();
            cmbProfecion.Refresh();

            MachRolesGrid(profesionalRolList);



            uc_MedioContacto1.Persona = profesionalBE.Persona;
            uc_Persona1.Refresh();
            uc_MedioContacto1.Init();
            this.cmbProfecion.EditValueChanged += new System.EventHandler(this.cmbProfecion_EditValueChanged);
        }
        void Update_ShiftsControls()
        {
            if (DesignMode) return;
            if (SelectedProfesionalBE == null) return;
            //Obtener la programacion del profesional 
            RetriveResourceSchedulingAndAppoinmentsRes res = ServiceCalls.RetriveResourceSchedulingAndAppoinments(SelectedProfesionalBE.IdProfesional, CurrentDateTime,false,ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

            if (uc_ShiftsControls1.profesional != SelectedProfesionalBE)
            {
                if (SelectedProfesionalBE.Foto!=null)



                    if (SelectedProfesionalBE.Foto != null)
                    {
                        this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch;
                        pictureEdit1.Image = Fwk.HelperFunctions.TypeFunctions.ConvertByteArrayToImage(SelectedProfesionalBE.Foto);
                    }
                    else
                    {
                        this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Clip;
                        if (SelectedProfesionalBE.Sexo.Equals((Int16)Sexo.Masculino))
                        {
                            pictureEdit1.Image = Health.Front.Base.Properties.Resource.User_M;
                        }
                        else
                        {
                            pictureEdit1.Image = Health.Front.Base.Properties.Resource.User_F;
                        }
                    }


                uc_ShiftsControls1.profesional = SelectedProfesionalBE;
        
                
               
                lblProfesional.Text = SelectedProfesionalBE.ApellidoNombre;
                lblEspesialidad.Text = SelectedProfesionalBE.NombreEspecialidad;
            }

            if (uc_ShiftsControls1.Date != CurrentDateTime)
            {
                uc_ShiftsControls1.Date = CurrentDateTime;
                lblFechaSeleccionada.Text = CurrentDateTime.ToLongDateString();
            }

            uc_ShiftsControls1.ShiftSchedulingList = res.BusinessData.ResourceSchedulerList;
            uc_ShiftsControls1.AppointmentList = res.BusinessData.AppoimentsList;
            ProfesionalSchedulerList = res.BusinessData.ResourceSchedulerList;

            lblDAysWeek.Text = uc_ShiftsControls1.ShiftSchedulingList.GetCommonDays().Replace("|", ", ");
            uc_ShiftsControls1.Refresh();
 
        }