Beispiel #1
0
        internal IBreakEnd[] GetSvBreakEnds(string ensemblName, int start, VariantType svType, int?svEnd, bool isInv3, bool isInv5)
        {
            if (svEnd == null)
            {
                return(null);
            }

            var end        = svEnd.Value;
            var breakEnds  = new IBreakEnd[2];
            var chromosome = ReferenceNameUtilities.GetChromosome(_refNameToChromosome, ensemblName);

            // ReSharper disable once SwitchStatementMissingSomeCases
            switch (svType)
            {
            case VariantType.deletion:
                breakEnds[0] = new BreakEnd(chromosome, chromosome, start, end + 1, false, true);
                breakEnds[1] = new BreakEnd(chromosome, chromosome, end + 1, start, true, false);
                break;

            case VariantType.tandem_duplication:
            case VariantType.duplication:
                breakEnds[0] = new BreakEnd(chromosome, chromosome, end, start, false, true);
                breakEnds[1] = new BreakEnd(chromosome, chromosome, start, end, true, false);
                break;

            case VariantType.inversion:
                if (isInv3)
                {
                    breakEnds[0] = new BreakEnd(chromosome, chromosome, start, end, false, false);
                    breakEnds[1] = new BreakEnd(chromosome, chromosome, end, start, false, false);
                    break;
                }
                if (isInv5)
                {
                    breakEnds[0] = new BreakEnd(chromosome, chromosome, start + 1, end + 1, true, true);
                    breakEnds[1] = new BreakEnd(chromosome, chromosome, end + 1, start + 1, true, true);
                    break;
                }

                breakEnds[0] = new BreakEnd(chromosome, chromosome, start, end, false, false);
                breakEnds[1] = new BreakEnd(chromosome, chromosome, end + 1, start + 1, true, true);
                break;

            default:
                return(null);
            }

            return(breakEnds);
        }
        private void Add()
        {
            if (Instruction == "Break")
            {
                if (!CheckValidHuboEntry(HuboStart))
                {
                    return;
                }

                if (!CheckValidHuboEntry(HuboEnd))
                {
                    return;
                }

                BreakTable breakAdd = new BreakTable()
                {
                    StartDate     = BreakStart.ToString(Resource.DateFormat),
                    EndDate       = BreakEnd.ToString(Resource.DateFormat),
                    StartLocation = LocationStart,
                    EndLocation   = LocationEnd
                };
                MessagingCenter.Send(this, "Break_Added", breakAdd);
            }
            else if (Instruction == "Note")
            {
                NoteTable note = new NoteTable()
                {
                    Date = NoteTime.ToString(Resource.DateFormat),
                    Note = NoteDetail
                };
                MessagingCenter.Send(this, "Note_Added", note);
            }
            else if (Instruction == "Drive Shift")
            {
                if (!CheckValidHuboEntry(HuboStart))
                {
                    return;
                }

                if (!CheckValidHuboEntry(HuboEnd))
                {
                    return;
                }

                List <VehicleTable> vehicleKey = new List <VehicleTable>();
                vehicleKey = GetVehicles();

                DriveTable drive = new DriveTable()
                {
                    StartDate     = DriveStartTime.ToString(Resource.DateFormat),
                    EndDate       = DriveEndTime.ToString(Resource.DateFormat),
                    StartHubo     = int.Parse(HuboStart),
                    EndHubo       = int.Parse(HuboEnd),
                    ActiveVehicle = false,
                    VehicleKey    = vehicleKey[SelectedVehicle].Key
                };
                MessagingCenter.Send(this, "Drive_Added", drive);
            }

            Navigation.PopModalAsync();
        }