public TabletHearingFormatDto(HearingFormatView hfV)
        {
            this.idFolder   = hfV.idFolder;
            this.idJudicial = hfV.idJudicial;

            TabletHearingFormatImputedDto hfImp = new TabletHearingFormatImputedDto();

            hfImp.name          = hfV.imputedName;
            hfImp.lastNameP     = hfV.imputedFLastName;
            hfImp.lastNameM     = hfV.imputedSLastName;
            hfImp.birthDate     = hfV.imputedBirthDate == null ? null : String.Format("{0:yyyy/MM/dd}", hfV.imputedBirthDate);
            this.hearingImputed = hfImp;
        }
Exemplo n.º 2
0
        public HearingFormatView newHearingFormatByCase(int idCase)
        {
            using (var db = FactoryConn.GetConn()) {
                var hearingFormatData = new HearingFormatView();

                var formatosAnteriores = db.Table <HearingFormat> ().Where(prev => prev.CaseDetention == idCase &&
                                                                           prev.IsFinished == true).OrderByDescending(prev => prev.Id).ToList();

                //intenta traer los formatos anteriores y con eso llenar el nuevo formato
                if (formatosAnteriores != null && formatosAnteriores.Count > 0)
                {
                    var ultimo = formatosAnteriores.FirstOrDefault();
                    hearingFormatData = fillHearingFormaData(ultimo.Id);
                    Case ActualCase = db.Table <Case> ().Where(actul => actul.Id == idCase).FirstOrDefault();
                    hearingFormatData.IsSubstracted = ActualCase.IsSubstracted;
                }
                else
                {
                    var caso     = db.Table <Case> ().Where(cs => cs.Id == idCase).FirstOrDefault();
                    var meeting  = db.Table <Meeting> ().Where(me => me.CaseDetentionId == idCase).FirstOrDefault();
                    var imputado = db.Table <Imputed> ().Where(im => im.MeetingId == meeting.Id).FirstOrDefault();
                    hearingFormatData.initTime         = DateTime.Now;
                    hearingFormatData.appointmentDate  = DateTime.Today;
                    hearingFormatData.idCase           = caso.Id;
                    hearingFormatData.idFolder         = caso.IdFolder;
                    hearingFormatData.idJudicial       = caso.IdMP;
                    hearingFormatData.imputedName      = imputado.Name;
                    hearingFormatData.imputedFLastName = imputado.LastNameP;
                    hearingFormatData.imputedSLastName = imputado.LastNameM;
                    hearingFormatData.imputedBirthDate = imputado.BirthDate;

                    db.CreateTable <User> ();
                    var  usrList  = db.Table <User> ().ToList();
                    User reviewer = usrList.FirstOrDefault();
                    int  revId    = 0;
                    if (reviewer != null && reviewer.Id > 0)
                    {
                        revId = reviewer.Id;
                    }
                    hearingFormatData.userName = reviewer.fullname;
                }
                hearingFormatData.canSave    = true;
                hearingFormatData.canEdit    = true;
                hearingFormatData.disableAll = false;
                db.Close();
                return(hearingFormatData);
            }
        }
Exemplo n.º 3
0
        public HFDtoSave fillHearingFormatWithView(HearingFormatView viewFormat)
        {
            string testJson = "{'id':1,'idFolder':'1020304050','recidivist':false,'dateCreate':'2015/06/08'}";
            var    objecto  = JsonConvert.DeserializeObject <TestTabletCaseDto> (testJson);

            using (var db = FactoryConn.GetConn()) {
                HFDtoSave     result        = new HFDtoSave();
                HearingFormat hearingFormat = new HearingFormat();
                if (viewFormat.idFormat != null && viewFormat.idFormat > 0)
                {
                    var updatable = db.Table <HearingFormat> ().Where(up => up.Id == viewFormat.idFormat).FirstOrDefault();
                    if (updatable != null)
                    {
                        hearingFormat = updatable;
                    }
                }
                hearingFormat.RegisterTime = DateTime.Now;
//			var supervisor = db.Table<User> ().FirstOrDefault ();
//			hearingFormat.Supervisor = supervisor.Id;

                hearingFormat.HearingType     = viewFormat.hearingTypeId ?? 0;
                hearingFormat.ImputedPresence = viewFormat.imputedPresence ?? 0;
                hearingFormat.HearingResult   = viewFormat.hearingResult;

                hearingFormat.TimeAgo       = viewFormat.TimeAgo;
                hearingFormat.LocationPlace = viewFormat.LocationPlace;

                bool          hasFirstFH = false;
                HearingFormat lastHF     = null;
                Case          existCase  = db.Table <Case> ().Where(cs => cs.Id == viewFormat.idCase).FirstOrDefault();
                hearingFormat.CaseDetention = existCase.Id;
                List <HearingFormat> existFinishedFormats = db.Table <HearingFormat> ().Where(hef => hef.CaseDetention == existCase.Id &&
                                                                                              hef.IsFinished == true).OrderByDescending(hef => hef.Id).ToList();

                if (existFinishedFormats != null && existFinishedFormats.Count > 0)
                {
                    hasFirstFH = true;
                    lastHF     = existFinishedFormats.First();
                }

                if (hasFirstFH)
                {
                    hearingFormat.IdFolder   = lastHF.IdFolder;
                    hearingFormat.IdJudicial = lastHF.IdJudicial;

                    if (viewFormat.hearingTypeId != null)
                    {
                        hearingFormat.HearingType = viewFormat.hearingTypeId ?? 0;
                        hearingFormat.HearingTypeSpecification = viewFormat.hearingTypeSpecification;
                    }

                    hearingFormat.ImputedPresence = viewFormat.imputedPresence ?? 0;
                    hearingFormat.HearingResult   = viewFormat.hearingResult;
                }
                else
                {
                    hearingFormat.IdFolder   = viewFormat.idFolder;
                    hearingFormat.IdJudicial = viewFormat.idJudicial;
                }

                hearingFormat.Room       = viewFormat.room;
                hearingFormat.District   = viewFormat.District;
                hearingFormat.IsHomeless = viewFormat.IsHomeless;

                hearingFormat.TimeAgo       = viewFormat.TimeAgo;
                hearingFormat.LocationPlace = viewFormat.LocationPlace;

                try {
                    if (viewFormat.appointmentDateStr != null && viewFormat.appointmentDateStr.Trim() != "")
                    {
                        hearingFormat.AppointmentDate = DateTime.ParseExact(viewFormat.appointmentDateStr, "yyyy/MM/dd",
                                                                            System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        hearingFormat.AppointmentDate = null;
                    }

                    if (viewFormat.initTimeStr != null && viewFormat.initTimeStr.Trim() != "")
                    {
                        hearingFormat.InitTime = DateTime.ParseExact(viewFormat.initTimeStr, "HH:mm:ss",
                                                                     System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        hearingFormat.InitTime = null;
                    }

                    if (viewFormat.endTimeStr != null && viewFormat.endTimeStr.Trim() != "")
                    {
                        hearingFormat.EndTime = DateTime.ParseExact(viewFormat.endTimeStr, "HH:mm:ss",
                                                                    System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        hearingFormat.EndTime = null;
                    }

                    if (viewFormat.umecaDateStr != null && viewFormat.umecaDateStr.Trim() != "")
                    {
                        hearingFormat.UmecaDate = DateTime.ParseExact(viewFormat.umecaDateStr, "yyyy/MM/dd",
                                                                      System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        hearingFormat.AppointmentDate = null;
                    }

                    if (viewFormat.umecaTimeStr != null && viewFormat.umecaTimeStr.Trim() != "")
                    {
                        hearingFormat.UmecaTime = DateTime.ParseExact(viewFormat.umecaTimeStr, "HH:mm:ss",
                                                                      System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        hearingFormat.UmecaTime = null;
                    }

                    if (viewFormat.umecaSupervisorId != null)
                    {
                        var super = db.Table <User> ().FirstOrDefault();
                        hearingFormat.UmecaSupervisor = super.Id;
                    }
                } catch (Exception e) {
                    Console.WriteLine("Ha ocurrido un error fillHearingFormat");
                    Console.WriteLine("Exception message :::>" + e.Message);
                    return(null);
                }

                hearingFormat.JudgeName    = viewFormat.judgeName;
                hearingFormat.MpName       = viewFormat.mpName;
                hearingFormat.DefenderName = viewFormat.defenderName;

                hearingFormat.PreviousHearing = viewFormat.previousHearing ?? 0;

                HearingFormatImputed hearingImputed = db.Table <HearingFormatImputed> ().Where(hfi => hfi.Id == hearingFormat.hearingImputed).FirstOrDefault();

                if (hearingImputed == null)
                {
                    hearingImputed = new HearingFormatImputed();
                }

                hearingImputed.Name      = viewFormat.imputedName;
                hearingImputed.LastNameP = viewFormat.imputedFLastName;
                hearingImputed.LastNameM = viewFormat.imputedSLastName;

                try {
                    if (viewFormat.imputedBirthDateStr != null && viewFormat.imputedBirthDateStr.Trim() != "")
                    {
                        hearingImputed.BirthDate = DateTime.ParseExact(viewFormat.imputedBirthDateStr, "yyyy/MM/dd",
                                                                       System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        hearingImputed.BirthDate = null;
                    }
                } catch (Exception e) {
                    Console.WriteLine("Ha ocurrido un error fillHearingFormat hearingImputed.BirthDate");
                    Console.WriteLine("Exception message :::>" + e.Message);
                    //logException.Write(e, this.getClass(), "parsingBirthDateHearingFormat", sharedUserService);
                    return(null);
                }
                try {
                    hearingImputed.ImputeTel = viewFormat.imputedTel;

                    if (viewFormat.location != null && viewFormat.location.Id > 0)
                    {
                        Address address = db.Table <Address> ().Where(ad => ad.Id == hearingImputed.Address).FirstOrDefault();
                        if (address == null)
                        {
                            address = new Address();
                        }

                        address.Street         = viewFormat.street;
                        address.OutNum         = viewFormat.outNum;
                        address.InnNum         = viewFormat.innNum;
                        address.Lat            = viewFormat.lat;
                        address.Lng            = viewFormat.lng;
                        address.LocationId     = viewFormat.location.Id;
                        address.addressString  = address.ToString();
                        hearingImputed.Address = address.Id;                        //TODO: asignar el id al guardar el address
                        result.addressImputado = address;
                    }
                    if (hearingFormat.IsHomeless)
                    {
                        Address address = db.Table <Address> ().Where(ad => ad.Id == hearingImputed.Address).FirstOrDefault();
                        if (address == null)
                        {
                            address = new Address();
                        }
                        address.Street = viewFormat.street;
                        address.OutNum = viewFormat.outNum;
                        address.InnNum = viewFormat.innNum;
                        Location homeles = db.Table <Location> ().Where(homeLess => homeLess.Name == Constants.HOMELESS_LOC).FirstOrDefault();
                        if (homeles != null && homeles.Id > 0)
                        {
                            address.LocationId = homeles.Id;
                        }
                        address.addressString  = address.ToString();
                        hearingImputed.Address = address.Id;                        //TODO: asignar el id al guardar el address
                        result.addressImputado = address;
                    }

                    hearingFormat.hearingImputed = hearingImputed.Id;                    //TODO: asignar el id al guardar el imputed
                    result.hearingFormatImputed  = hearingImputed;
                } catch (Exception e) {
                    Console.WriteLine("Ha ocurrido un error fillHearingFormat Imputed address");
                    Console.WriteLine("Exception message :::>" + e.Message);
                    //logException.Write(e, this.getClass(), "parsingBirthDateHearingFormat", sharedUserService);
                    return(null);
                }


                HearingFormatSpecs hearingSpecs = new HearingFormatSpecs();

                if (hearingFormat.HearingFormatSpecs > 0)
                {
                    hearingSpecs = db.Table <HearingFormatSpecs> ().Where(hspc => hspc.Id == hearingFormat.HearingFormatSpecs).FirstOrDefault();
                }
                hearingSpecs.ControlDetention      = viewFormat.controlDetention ?? 0;
                hearingSpecs.Extension             = viewFormat.extension ?? 0;
                hearingSpecs.ImputationFormulation = viewFormat.impForm ?? 0;

                try {
                    if (viewFormat.imputationDateStr != null && viewFormat.imputationDateStr.Trim() != "")
                    {
                        hearingSpecs.ImputationDate = DateTime.ParseExact(viewFormat.imputationDateStr, "yyyy/MM/dd",
                                                                          System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        hearingSpecs.ImputationDate = null;
                    }

                    if (viewFormat.extDate != null)
                    {
                        hearingSpecs.ExtDate = viewFormat.extDate;
                    }
                    else
                    {
                        hearingSpecs.ExtDate = null;
                    }

                    if (viewFormat.linkageDate != null)
                    {
                        hearingSpecs.LinkageDate = viewFormat.linkageDate;
                    }
                    else
                    {
                        hearingSpecs.LinkageDate = null;
                    }

                    if (viewFormat.linkageTime != null)
                    {
                        hearingSpecs.LinkageTime = viewFormat.linkageTime;
                    }
                } catch (Exception e) {
                    Console.WriteLine("Ha ocurrido un error fillHearingFormat times");
                    Console.WriteLine("Exception message :::>" + e.Message);
                    //logException.Write(e, this.getClass(), "parsingSpecsHearingFormat", sharedUserService);
                    return(null);
                }

                hearingSpecs.LinkageProcess = viewFormat.vincProcess ?? 0;
                hearingSpecs.LinkageRoom    = viewFormat.linkageRoom;


                if (viewFormat.vincProcess != null &&
                    viewFormat.vincProcess == Constants.PROCESS_VINC_YES ||
                    viewFormat.vincProcess == Constants.PROCESS_VINC_NO_REGISTER)
                {
                    hearingSpecs.ArrangementType     = viewFormat.arrangementType ?? 0;
                    hearingSpecs.NationalArrangement = viewFormat.nationalArrangement.GetValueOrDefault();


                    String[] terms = null;
                    if (viewFormat.terms != null)
                    {
                        viewFormat.terms.Split(',');
                    }

                    if (terms != null && terms.Length > 0)
                    {
                        hearingFormat.Terms = terms [0];
                    }
                    else
                    {
                        hearingFormat.Terms = viewFormat.terms;
                    }

//				List<ArrangementView> lstAssignedArrnmtView;
//				Type type = new TypeToken<>() {
//				}.getType();

                    if (viewFormat.lstArrangement != null && viewFormat.lstArrangement.Trim() != "")
                    {
                        var lstAssignedArrnmtView = JsonConvert.DeserializeObject <List <ArrangementView> > (viewFormat.lstArrangement);

                        if (lstAssignedArrnmtView.Count > 0)
                        {
                            List <AssignedArrangement> lstNewAssigArrmnt = new List <AssignedArrangement> ();

                            foreach (ArrangementView arrV in lstAssignedArrnmtView)
                            {
                                if (arrV.selVal == true)
                                {
                                    AssignedArrangement assArrmnt = new AssignedArrangement();
                                    assArrmnt.Arrangement   = arrV.id;
                                    assArrmnt.Description   = arrV.description;
                                    assArrmnt.HearingFormat = hearingFormat.Id;
                                    lstNewAssigArrmnt.Add(assArrmnt);
                                }
                            }

                            var oldArrangements = db.Table <AssignedArrangement> ().Where(aa => aa.HearingFormat == hearingFormat.Id).ToList();


                            if (oldArrangements != null && oldArrangements.Count > 0)
                            {
                                foreach (AssignedArrangement actArr in oldArrangements)
                                {
//								actArr.HearingFormat = 0;
//								actArr.Arrangement = 0;
                                    db.Delete(actArr);
                                }
                            }

                            result.newArrangments = lstNewAssigArrmnt;
                        }
                    }

                    var lstContactData = new List <ContactData> ();



                    if (viewFormat.lstContactData != null && viewFormat.lstContactData.Trim() != "")
                    {
                        lstContactData = JsonConvert.DeserializeObject <List <ContactData> > (viewFormat.lstContactData);

                        if (lstContactData.Count > 0)
                        {
                            List <ContactData> lstNewContactData = new List <ContactData> ();

                            foreach (ContactData conV in lstContactData)
                            {
                                ContactData contact = new ContactData();
                                contact.NameTxt       = conV.NameTxt;
                                contact.PhoneTxt      = conV.PhoneTxt;
                                contact.AddressTxt    = conV.AddressTxt;
                                contact.HearingFormat = hearingFormat.Id;
                                contact.liveWith      = conV.liveWith;
                                lstNewContactData.Add(contact);
                            }

                            var oldContacts = new List <ContactData> ();
                            if (hearingFormat != null && hearingFormat.Id > 0)
                            {
                                var prevContacts = db.Table <ContactData> ().Where(cont => cont.HearingFormat == hearingFormat.Id).ToList();
                                if (prevContacts != null && prevContacts.Count > 0)
                                {
                                    oldContacts = prevContacts;
                                }
                            }


                            if (oldContacts != null && oldContacts.Count > 0)
                            {
                                foreach (ContactData act in oldContacts)
                                {
//								act.HearingFormat = 0;
                                    db.Delete(act);
                                }
                            }

                            result.lstContactDataView = lstNewContactData;
                        }
                        else
                        {
                            var oldContacts = new List <ContactData> ();
                            if (hearingFormat != null && hearingFormat.Id > 0)
                            {
                                var prevContacts = db.Table <ContactData> ().Where(cont => cont.HearingFormat == hearingFormat.Id).ToList();
                                if (prevContacts != null && prevContacts.Count > 0)
                                {
                                    oldContacts = prevContacts;
                                }
                            }


                            if (oldContacts != null && oldContacts.Count > 0)
                            {
                                foreach (ContactData act in oldContacts)
                                {
                                    //act.HearingFormat = 0;
                                    db.Delete(act);
                                }
                            }
                        }
                    }
                }
                else
                {
                    hearingFormat.ConfirmComment = viewFormat.confirmComment;
                }


                var prevCrime = db.Table <Crime> ().Where(crm => crm.HearingFormat == hearingFormat.Id).ToList();
                if (prevCrime != null && prevCrime.Count > 0)
                {
                    foreach (Crime c in prevCrime)
                    {
//					c.setHearingFormat = null;
                        db.Delete(c);
                    }
                }
                var auxCrime  = new List <Crime> ();
                var crimeView = JsonConvert.DeserializeObject <List <CrimeDto> > (viewFormat.listCrime);
                if (crimeView != null && crimeView.Count > 0)
                {
                    foreach (CrimeDto cdto in crimeView)
                    {
                        auxCrime.Add(cdto.ToCrime());
                    }
                }
                result.crimeList             = auxCrime;
                result.newHearingFormatSpecs = hearingSpecs;
                hearingFormat.IsFinished     = viewFormat.isFinished.GetValueOrDefault();
                hearingFormat.Comments       = viewFormat.comments;


                result.hearingFormat = hearingFormat;
                db.Close();
                return(result);
            }
        }
Exemplo n.º 4
0
        public void  HearingFormatVisualize(int idCase, int idFormato)
        {
            using (var db = FactoryConn.GetConn()) {
                var view = new HearingFormatEditDto();
                var hearingFormatData = new HearingFormatView();
                var statusClosed      = db.Table <StatusCase> ().Where(stc2 => stc2.Name == Constants.CASE_STATUS_CLOSED).FirstOrDefault();
                var casoverStatus     = db.Table <Case> ().Where(cs => cs.Id == idCase && cs.StatusCaseId == statusClosed.Id).ToList();

                if (casoverStatus != null && casoverStatus.Count > 0)
                {
                    HearingFormatList(idCase, "No es posible agregar mas formatos, el caso se encuentra cerrado.");
                    return;
                }

                if (idFormato > 0)
                {
                    hearingFormatData = fillHearingFormaData(idFormato);
                    Case ActualCase = db.Table <Case> ().Where(actul => actul.Id == idCase).FirstOrDefault();
                    hearingFormatData.IsSubstracted = ActualCase.IsSubstracted;
                }
                else                     //si es nuevo
                {
                    var last = db.Table <HearingFormat> ().Where(hf => hf.CaseDetention == idCase && hf.IsFinished == false).ToList();
                    if (last != null && last.Count > 0)
                    {
                        HearingFormatList(idCase, "No es posible agregar mas formatos, el caso tiene un formato de audiencia incompleto.");
                        return;
                    }
                    hearingFormatData                = newHearingFormatByCase(idCase);
                    hearingFormatData.isFinished     = false;
                    hearingFormatData.endTime        = null;
                    hearingFormatData.idFormat       = null;
                    hearingFormatData.confirmComment = null;
                    hearingFormatData.credPass       = null;
                }

                var pervF = db.Table <HearingFormat> ().Where(prev => prev.CaseDetention == idCase &&
                                                              prev.IsFinished == true).ToList();
                if (pervF != null && pervF.Count > 0)
                {
                    hearingFormatData.hasPrevHF = true;
                }
                else
                {
                    hearingFormatData.hasPrevHF = false;
                }

                view.IdCase = idCase;
                if (string.IsNullOrEmpty(hearingFormatData.listCrime))
                {
                    view.listCrime = "[]";
                }
                else
                {
                    view.listCrime = hearingFormatData.listCrime;
                }


                var catalogoCrimenes = db.Table <CrimeCatalog> ().Where(ccs => ccs.IsObsolete == false).ToList();
                var optCrimes        = new List <CatalogDto> ();
                foreach (CrimeCatalog cc in catalogoCrimenes)
                {
                    optCrimes.Add(new CatalogDto(cc.Id, cc.Name));
                }
                view.optionsCrime = JsonConvert.SerializeObject(optCrimes);
                var elections    = db.Table <Election> ().ToList();
                var optElections = new List <CatalogDto> ();
                foreach (Election el in elections)
                {
                    optElections.Add(new CatalogDto(el.Id, el.Name));
                }
                view.listElection = JsonConvert.SerializeObject(optElections);
                view.readonlyBand = false;

                var hearingtypes = db.Table <HearingType> ().Where(ht => ht.IsObsolete == false).OrderBy(ht => ht.Description).ToList();
                if (hearingtypes != null & hearingtypes.Count > 0)
                {
                    var tiposFormato = new List <SelectList> ();
                    foreach (HearingType tp in hearingtypes)
                    {
                        var tipo = new SelectList(tp.Id, tp.Description, tp.Lock, tp.Specification);
                        tiposFormato.Add(tipo);
                    }
                    view.lstHearingType = JsonConvert.SerializeObject(tiposFormato);
                }
                else
                {
                    view.lstHearingType = "[]";
                }

                var country   = db.Table <Country> ().Where(ctry => ctry.Alpha2 == Constants.ALPHA2_MEXICO).FirstOrDefault();
                var listState = db.Table <State> ().Where(st => st.CountryId == country.Id).OrderBy(st => st.Name).ToList();
                if (listState != null & listState.Count > 0)
                {
                    var stateDtoList = new List <StateDto> ();
                    foreach (State lst in listState)
                    {
                        var rowState = new StateDto(lst);
                        stateDtoList.Add(rowState);
                    }
                    view.listState = JsonConvert.SerializeObject(stateDtoList);
                }
                else
                {
                    view.listState = "[]";
                }

                if (hearingFormatData.idAddres != null && hearingFormatData.idAddres > 0)
                {
                    var direccion = db.Table <Address> ().Where(addr => addr.Id == hearingFormatData.idAddres).FirstOrDefault();
                    var adres     = db.Table <Location> ().Where(loc => loc.Id == direccion.LocationId).FirstOrDefault();
                    var parser    = new AddressDto(direccion);
                    parser.locationId = direccion.LocationId ?? 0;
                    parser.zipCode    = adres.ZipCode;
                    view.address      = JsonConvert.SerializeObject(parser);
                }
                hearingFormatData.canEdit    = false;
                hearingFormatData.canSave    = false;
                hearingFormatData.disableAll = true;
                view.model = JsonConvert.SerializeObject(hearingFormatData);
                var temp = new HearingFormatEdit {
                    Model = view
                };
                //			var temp = new NewMeeting{Model = new EntrevistaTabla{Name="nombre" , DateBirthString=DateTime.Today.ToString("yyyy/mm/dd")} };
                var pagestring = "nada que ver";
                pagestring = temp.GenerateString();
                webView.LoadHtmlString(pagestring);
                db.Close();
            }
        }
Exemplo n.º 5
0
        public HearingFormatView fillHearingFormaData(int idFormato)
        {
            var result = new HearingFormatView();

            using (var db = FactoryConn.GetConn()) {
                db.CreateTable <User> ();
                var  usrList  = db.Table <User> ().ToList();
                User reviewer = usrList.FirstOrDefault();
                int  revId    = 0;
                if (reviewer != null && reviewer.Id > 0)
                {
                    revId = reviewer.Id;
                }

                result.canSave    = true;
                result.canEdit    = true;
                result.disableAll = false;
                var formatosFuente = db.Table <HearingFormat> ().Where(hf => hf.Id == idFormato).FirstOrDefault();

                result.idFormat = formatosFuente.Id;
                result.idCase   = formatosFuente.CaseDetention;

                result.idFolder        = formatosFuente.IdFolder;
                result.idJudicial      = formatosFuente.IdJudicial;
                result.appointmentDate = formatosFuente.AppointmentDate ?? DateTime.Now;
                result.room            = formatosFuente.Room;
                result.initTime        = formatosFuente.InitTime ?? DateTime.Now;
                result.endTime         = formatosFuente.EndTime ?? DateTime.Now;
                result.judgeName       = formatosFuente.JudgeName;
                result.mpName          = formatosFuente.MpName;
                result.defenderName    = formatosFuente.DefenderName;
                result.isFinished      = formatosFuente.IsFinished;

                result.IsHomeless    = formatosFuente.IsHomeless;
                result.District      = formatosFuente.District;
                result.TimeAgo       = formatosFuente.TimeAgo;
                result.LocationPlace = formatosFuente.LocationPlace;



                db.CreateTable <HearingFormatImputed> ();
                var imputado = db.Table <HearingFormatImputed> ().Where(imp => imp.Id == formatosFuente.hearingImputed).FirstOrDefault();
                if (imputado != null && imputado.Id > 0)
                {
                    result.imputedName      = imputado.Name;
                    result.imputedFLastName = imputado.LastNameP;
                    result.imputedSLastName = imputado.LastNameM;
                    result.imputedBirthDate = imputado.BirthDate;
                    result.imputedTel       = imputado.ImputeTel;
                }

                result.umecaDate = formatosFuente.UmecaDate ?? DateTime.Now;
                result.umecaTime = formatosFuente.UmecaTime ?? DateTime.Now;

                result.userName = reviewer.fullname;

                if (formatosFuente.HearingType > 0)
                {
                    result.hearingTypeId            = formatosFuente.HearingType;
                    result.hearingTypeSpecification = formatosFuente.HearingTypeSpecification;
                }

                result.imputedPresence = formatosFuente.ImputedPresence;
                result.hearingResult   = formatosFuente.HearingResult;

                if (imputado != null && imputado.Id > 0)
                {
                    result.idAddres = imputado.Address;
                }

                var specs = db.Table <HearingFormatSpecs> ().Where(hfs => hfs.Id == formatosFuente.HearingFormatSpecs).FirstOrDefault();

                if (specs != null)
                {
                    result.controlDetention = specs.ControlDetention;
                    result.extension        = specs.Extension;
                    result.extDate          = specs.ExtDate ?? DateTime.Now;
                    result.impForm          = specs.ImputationFormulation;
                    result.imputationDate   = specs.ImputationDate ?? DateTime.Now;
                    result.vincProcess      = specs.LinkageProcess;
                    result.linkageRoom      = specs.LinkageRoom;
                    result.linkageDate      = specs.LinkageDate ?? DateTime.Now;
                    result.linkageTime      = specs.LinkageTime ?? DateTime.Now;
                }

                if (specs != null && specs.LinkageProcess > 0 &&
                    (specs.LinkageProcess == Constants.PROCESS_VINC_YES || specs.LinkageProcess == Constants.PROCESS_VINC_NO_REGISTER))
                {
                    result.arrangementType     = specs.ArrangementType;
                    result.nationalArrangement = specs.NationalArrangement;
                    result.terms = formatosFuente.Terms;
                }

                if (specs != null && specs.NationalArrangement != null && specs.ArrangementType > 0)
                {
                    List <ArrangementView> lstExistArrangement = getArrangmentLst(specs.NationalArrangement, specs.ArrangementType, idFormato);
                    result.lstArrangement = JsonConvert.SerializeObject(lstExistArrangement);
                }


                result.imputedPresence = formatosFuente.ImputedPresence;
                result.hearingResult   = formatosFuente.HearingResult;
                result.previousHearing = formatosFuente.PreviousHearing;
                result.comments        = formatosFuente.Comments;
                var contactos = db.Table <ContactData> ().Where(con => con.HearingFormat == formatosFuente.Id).ToList();
                if (contactos != null && contactos.Count > 0)
                {
                    result.lstContactData = JsonConvert.SerializeObject(contactos);
                }

                var crimes = db.Table <Crime> ().Where(crm => crm.HearingFormat == formatosFuente.Id).ToList();
                if (crimes != null && crimes.Count > 0)
                {
                    var crimeList = new List <CrimeDto> ();
                    foreach (Crime c in crimes)
                    {
                        var parsedCrime = new CrimeDto();
                        var crimen      = new CatalogDto();
                        crimen.id           = c.IdCrimeCat ?? 0;
                        crimen.name         = db.Table <CrimeCatalog> ().Where(cct => cct.Id == c.IdCrimeCat).FirstOrDefault().Name ?? "";
                        parsedCrime.crime   = crimen;
                        parsedCrime.comment = c.Comment;
                        CatalogDto aux     = new CatalogDto();
                        var        federal = db.Table <Election> ().Where(ele => ele.Id == c.Federal).FirstOrDefault();
                        aux.name            = federal.Name;
                        aux.id              = c.Federal ?? 0;
                        parsedCrime.federal = aux;
                        parsedCrime.article = c.Article;
                        crimeList.Add(parsedCrime);
                    }
                    result.listCrime = JsonConvert.SerializeObject(crimeList);
                }

                if (contactos != null && contactos.Count > 0)
                {
                    result.lstContactData = JsonConvert.SerializeObject(contactos);
                }

                db.Close();
                return(result);
            }
        }