Example #1
0
        public ObservableCache(Func <TObject, TKey> keySelector = null)
        {
            _readerWriter = new ReaderWriter <TObject, TKey>(keySelector);

            _cleanUp = Disposable.Create(() =>
            {
                _changes.OnCompleted();
                if (_countChanged.IsValueCreated)
                {
                    _countChanged.Value.OnCompleted();
                }
            });
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SourceList{T}"/> class.
        /// </summary>
        /// <param name="source">The source.</param>
        public SourceList(IObservable <IChangeSet <T> > source = null)
        {
            _readerWriter = new ReaderWriter <T>();

            var loader = source == null ? Disposable.Empty : LoadFromSource(source);

            _cleanUp = Disposable.Create(() =>
            {
                loader.Dispose();
                OnCompleted();
                if (_countChanged.IsValueCreated)
                {
                    _countChanged.Value.OnCompleted();
                }
            });
        }
 // Start is called before the first frame update
 void Start()
 {
     try
     {
         monitor = GetComponent <ReaderWriter>();
         text    = monitor.ReadString("Options.conf");
         doc     = new XmlDocument();
         doc.LoadXml(text);
         AsignarValores(doc);
     }
     catch (Exception)
     {
         Debug.LogError("Archivo Options.conf corruto, asignando codigo predeterminado");
         ValoresPredeterminados();
     }
 }
Example #4
0
 private void Testing(PathEnum pathEnum)
 {
     try
     {
         string path = testsDictionary[pathEnum];
         readerWriter = new ReaderGraph(path);
         Testing();
     }
     catch (KeyNotFoundException)
     {
         throw new MyException.TestsException.TestsMissingTestException(pathEnum.ToString());
     }
     catch (MyException.ReaderWriterException.ReaderWriterException e)
     {
         stringBuilder.AppendLine(e.Message);
     }
 }
Example #5
0
        private async void onAddFriendClick(object sender, EventArgs args)
        {
            var user = await ReaderWriter.GetPerson(email);

            var response = await ReaderWriter.GetPersonByUsername(friendsEntry.Text);

            if (response == null || user.email == response.email) //Dodal da nemores dodat sebe.
            {
                if (string.IsNullOrWhiteSpace(friendsEntry.Text))
                {
                    await DisplayAlert("Error", "Enter a username first!", "OK");

                    return;
                }
                else
                {
                    await DisplayAlert("User not found", "The user you searched for not found!", "OK");

                    friendsEntry.Text = "";
                    return;
                }
            }
            foreach (string a in user.friends)
            {
                if (a == response.username) //Da nemoreš dodat večkrat.
                {
                    await DisplayAlert("Already friends", "The user is already your friend!", "OK");

                    friendsEntry.Text = "";
                    return;
                }
            }
            if (user.friends.Count >= 20)
            {
                await DisplayAlert("Friend limit reached", "You have reached the maximum number of friends!", "OK"); //max frendov

                friendsEntry.Text = "";
                return;
            }
            await ReaderWriter.UpdateFriendsList(email, response);

            friendsEntry.Text = "";
            FillFriendsList(Friends);
            await DisplayAlert("Success", "Friend added!", "Close");
        }
Example #6
0
    public client(int id, ReaderWriter rwlock)
    {
        Join j = Join.Create();

        j.Initialize(out run);

        j.When(run).Do(delegate() {
           while (true) {
         read();
         delay();
         write();
         delay();};}
           );

        this.id=id;
        this.rwlock=rwlock;

        run();
    }
Example #7
0
        public ObservableCache(IObservable <IChangeSet <TObject, TKey> > source)
        {
            _readerWriter = new ReaderWriter <TObject, TKey>();

            var loader = source
                         .Synchronize(_locker)
                         .Select(changes => _readerWriter.Write(changes, _changes.HasObservers))
                         .Finally(_changes.OnCompleted)
                         .Subscribe(InvokeNext, _changes.OnError);

            _cleanUp = Disposable.Create(() =>
            {
                loader.Dispose();
                _changes.OnCompleted();
                if (_countChanged.IsValueCreated)
                {
                    _countChanged.Value.OnCompleted();
                }
            });
        }
Example #8
0
        /// <summary>
        /// Test a operation (OperationEnum) on a file (pathEnum)
        /// </summary>
        /// <param name="operationEnum">type of operation (enum)</param>
        /// <param name="pathEnum">file path (enum)</param>
        /// <returns>report</returns>
        public StringBuilder Test(OperationEnum operationEnum, PathEnum pathEnum)
        {
            stringBuilder.Clear();

            string path = testsDictionary[pathEnum];

            readerWriter = new ReaderGraph(path);

            switch (operationEnum)
            {
            case OperationEnum.clearFile:
                ClearFile();
                break;

            case OperationEnum.createFile:
                CreateFile();
                break;

            case OperationEnum.deleteFile:
                DeleteFile();
                break;

            case OperationEnum.existFile:
                ExistFile();
                break;

            case OperationEnum.readFile:
                ReadFile();
                break;

            case OperationEnum.writeFile:
                WriteFile();
                break;

            default:
                throw new MyException.TestsException.TestsMissingTestException(operationEnum.ToString());
            }

            return(stringBuilder);
        }
        static void Main(string[] args)
        {
            Student martin = new Student {
                FirstName = "Martin", LastName = "Panovski", Age = 27, IsPartTime = true
            };

            // Serialization of C# object
            string martinString = CustomJsonSerializer.SerializeStudent(martin);

            Console.WriteLine(martinString);

            // Deserialization of json string into C# object
            Student martinDeserialized = CustomJsonSerializer.DeserializeStudent(martinString);

            Console.WriteLine(martinDeserialized.FirstName);
            Console.WriteLine(martinDeserialized.LastName);


            Student petre = new Student {
                FirstName = "Petre", LastName = "Arsovski", Age = 25, IsPartTime = true
            };

            CreateFolder(folderPath);
            CreateFile(filePath);

            string jsonStudent = CustomJsonSerializer.SerializeStudent(petre);

            ReaderWriter.WriteFile(filePath, jsonStudent);


            string studentFromFile = ReaderWriter.ReadFile(filePath);

            Student studentParsed = CustomJsonSerializer.DeserializeStudent(studentFromFile);

            Console.WriteLine($"Hello there this is the student read from the file: {studentParsed.FirstName}");



            Console.ReadLine();
        }
Example #10
0
 private void _ClientHandlerStage2(Stream Stream)
 {
     using (ReaderWriter rw = new ReaderWriter(Stream))
     {
         BooruUser user = _Booru.DefaultUser;
         while (_ThreadPool.IsRunning)
         {
             RequestCode requestCode = (RequestCode)rw.ReadUShort();
             if (requestCode != RequestCode.Disconnect)
             {
                 byte[] payload = rw.ReadBytes();
                 _Logger.LogLine("Client request: RQ = {0}, {1} bytes payload", Enum.GetName(typeof(RequestCode), requestCode), payload.Length);
                 using (var inputMs = new MemoryStream(payload))
                     using (var outputMs = new MemoryStream())
                     {
                         try
                         {
                             using (var rw2 = new ReaderWriter(inputMs, outputMs))
                                 _ClientHandlerStage3((RequestCode)requestCode, rw2, ref user);
                             rw.Write(true);
                             rw.Write(outputMs.ToArray(), true);
                         }
                         catch (Exception ex)
                         {
                             _Logger.LogException("ClientRequest", ex);
                             rw.Write(false);
                             rw.Write(ex.Message, true);
                         }
                         rw.Flush();
                     }
             }
             else
             {
                 _Logger.LogLine("Client disconnected gracefully");
                 break;
             }
         }
     }
 }
Example #11
0
        //void MoviesCommand(object sender, EventArgs args)
        //{
        //    DisplayAlert("Rabim event handler", "Implementiraj me", "OK");
        //}
        //void TVSeriesCommand(object sender, EventArgs args)
        //{
        //    DisplayAlert("Dela", "Implementiraj me", "OK");
        //}
        //void DocumentariesCommand(object sender, EventArgs args)
        //{
        //    DisplayAlert("Dela", "Implementiraj me", "OK");
        //}
        //void AnimeCommand(object sender, EventArgs args)
        //{
        //    DisplayAlert("Dela", "Implementiraj me", "OK");
        //}

        //public async void OnShowMenu()
        //{
        //    if (_isAnimationRun)
        //        return;

        //    _isAnimationRun = true;
        //    var animationDuration = AnimationDuration;
        //    if (Page.Scale < 1)
        //    {
        //        animationDuration = (int)(AnimationDuration * SlideAnimationDuration);
        //        GetCollapseAnimation().Commit(this, CollapseAnimationName, 16,
        //            (uint)(AnimationDuration * SlideAnimationDuration),
        //            Easing.Linear,
        //            null, () => false);
        //    }
        //    else
        //    {
        //        GetExpandAnimation().Commit(this, ExpandAnimationName, 16,
        //            AnimationDuration,
        //            Easing.Linear,
        //            null, () => false);
        //    }

        //    await Task.Delay(animationDuration);
        //    _isAnimationRun = false;
        //}

        //private Animation GetExpandAnimation()
        //{
        //    var iconAnimationTime = (1 - SlideAnimationDuration) / _menuItemsView.Count();
        //    var animation = new Animation
        //    {
        //        {0, SlideAnimationDuration, new Animation(v => ToolbarSafeAreaRow.Height = v, _safeInsetsTop, 0)},
        //        {
        //            0, SlideAnimationDuration,
        //            new Animation(v => Page.TranslationX = v, 0, Device.Info.ScaledScreenSize.Width * PageTranslation)
        //        },
        //        {0, SlideAnimationDuration, new Animation(v => Page.Scale = v, 1, PageScale)},
        //        {
        //            0, SlideAnimationDuration,
        //            new Animation(v => Page.Margin = new Thickness(0, v, 0, 0), 0, _safeInsetsTop)
        //        },
        //        {0, SlideAnimationDuration, new Animation(v => Page.CornerRadius = (float) v, 0, 5)}
        //    };

        //    foreach (var view in _menuItemsView)
        //    {
        //        var index = _menuItemsView.IndexOf(view);
        //        animation.Add(SlideAnimationDuration + iconAnimationTime * index - 0.05,
        //            SlideAnimationDuration + iconAnimationTime * (index + 1) - 0.05, new Animation(
        //                v => view.Opacity = (float)v, 0, 1));
        //        animation.Add(SlideAnimationDuration + iconAnimationTime * index,
        //            SlideAnimationDuration + iconAnimationTime * (index + 1), new Animation(
        //                v => view.TranslationY = (float)v, -10, 0));
        //    }

        //    return animation;
        //}

        //private Animation GetCollapseAnimation()
        //{
        //    var animation = new Animation
        //    {
        //        {0, 1, new Animation(v => ToolbarSafeAreaRow.Height = v, 0, _safeInsetsTop)},
        //        {0, 1, new Animation(v => Page.TranslationX = v, Device.Info.ScaledScreenSize.Width * PageTranslation, 0)},
        //        {0, 1, new Animation(v => Page.Scale = v, PageScale, 1)},
        //        {0, 1, new Animation(v => Page.Margin = new Thickness(0, v, 0, 0), _safeInsetsTop, 0)},
        //        {0, 1, new Animation(v => Page.CornerRadius = (float) v, 5, 0)}
        //    };

        //    foreach (var view in _menuItemsView)
        //    {
        //        animation.Add(0, 1, new Animation(
        //            v => view.Opacity = (float)v, 1, 0));
        //        animation.Add(0, 1, new Animation(
        //            v => view.TranslationY = (float)v, 0, -10));
        //    }

        //    return animation;
        //}
        private async void BtnSave_Clicked(object sender, EventArgs e)
        {
            bool decision = await DisplayAlert("Update user credentials", "Are you sure you want to update your user credentials?", "Yes", "No");

            if (decision == true)
            {
                await PopupNavigation.Instance.PushAsync(new BusyPopUp());

                try
                {
                    await ReaderWriter.UpdatePerson(Username.Text, Email.Text, user.friends, user.movies);
                }
                finally
                {
                    await PopupNavigation.Instance.PopAsync();
                }
            }
            else
            {
                //nič
            };
        }
Example #12
0
        private void Testing(Graph.Graph.GraphRepresentationEnum graphEnum, PathEnum pathEnum)
        {
            try
            {
                List <string> fileList = new List <string>();
                switch (graphEnum)
                {
                case Graph.Graph.GraphRepresentationEnum.adjacencyList:
                    fileList = testsGraphAdjacencyListDictionary[pathEnum];
                    break;

                case Graph.Graph.GraphRepresentationEnum.adjacencyMatrix:
                    fileList = testsGraphAdjacencyMatrixDictionary[pathEnum];
                    break;

                case Graph.Graph.GraphRepresentationEnum.edgeList:
                    fileList = testsGraphEdgeListDictionary[pathEnum];
                    break;

                default:
                    throw new MyException.TestsException.TestsMissingTestException(graphEnum.ToString());
                }
                foreach (string file in fileList)
                {
                    reader = new ReaderGraph(ReaderWriter.CreateTestFile(file), false);
                    Testing();
                }
            }
            catch (KeyNotFoundException)
            {
                throw new MyException.TestsException.TestsMissingTestException(pathEnum.ToString());
            }
            catch (MyException.ReaderWriterException.ReaderWriterException e)
            {
                stringBuilder.AppendLine(e.Message);
            }
        }
Example #13
0
        static void Main(string[] args)
        {
            ReaderWriter rw = new ReaderWriter();

            if (!Directory.Exists(folderPath))
            {
                Directory.CreateDirectory(folderPath);
            }

            Student dejan = new Student()
            {
                FirstName = "Dejan", LastName = "Jovanov", Age = 27, IsPartTime = false
            };
            Student martin = new Student()
            {
                FirstName = "Martin", LastName = "Panovski", Age = 26, IsPartTime = false
            };

            string dejanString  = JsonConvert.SerializeObject(dejan);
            string martinString = JsonConvert.SerializeObject(martin);

            rw.WriteFile(filePath, dejanString);
            rw.WriteFile(filePath, martinString);

            Student dejanObj  = JsonConvert.DeserializeObject <Student>(dejanString);
            Student martinObj = JsonConvert.DeserializeObject <Student>(martinString);

            Console.WriteLine(rw.ReadFile(filePath));

            Console.WriteLine("----------------- Printing deserialized objects ------------------");
            PrintData(dejanObj);
            PrintData(martinObj);



            Console.ReadLine();
        }
Example #14
0
        private static bool Verify(IList <int> result, string inputFile)
        {
            QuickSort.PivotType = PivotType.Middle;

            var array = ReaderWriter.Read(inputFile);

            QuickSort.Sort(array, 0, array.Count - 1);

            QuickSort.PivotType = PivotType.Middle;

            var flag = true;

            for (int index = 0; index < result.Count; index++)
            {
                //Console.WriteLine($"Index {index}: {result[index]} ({array[index]})");

                if (result[index] != array[index])
                {
                    flag = false;
                }
            }

            return(flag);
        }
Example #15
0
            public void Run()
            {
                while (true)
                {
                    lock (ReaderWriter.LW){
                        var done = false;

                        while (!done)
                        {
                            lock (ReaderWriter.LR){
                                if (ReaderWriter.ReadCount == 0)
                                {
                                    ReaderWriter.Data = DateTime.Now.ToString();
                                    Console.WriteLine($"Writer wrote {ReaderWriter.Data}");
                                    done = true;
                                }
                            }

                            try{
                                while (ReaderWriter.ReadCount != 0)
                                {
                                    Console.WriteLine("Writer waiting...");
                                    ReaderWriter.WaitLR();
                                }
                            } catch (ThreadInterruptedException) {
                                Console.WriteLine("ThreadInterruptedException in Writer wait");
                            }
                        }

                        var rand = new Random();
                        var secs = rand.Next(1, 5);
                        Console.WriteLine($"Writer sleeping {secs} seconds...");
                        Thread.Sleep(secs * 1000);
                    }
                }
            }
        protected override void Run(object data, IConfigurationEventSource eventSource)
        {
            ReaderWriter rw = data as ReaderWriter;

            if (rw != null)
            {
                // Read the catalogue.

                eventSource.Raise(ConfigurationEvent.Information, "Reading from the '" + rw.Reader.RepositoryType + "' repository with initialisation string '" + rw.Reader.InitialisationString + "'.");

                Catalogue catalogue;
                using (ConnectionState state = new ConnectionState(eventSource))
                {
                    catalogue = rw.Reader.Read(state);
                }

                // Write the catalogue.

                eventSource.Raise(ConfigurationEvent.Information, "Writing to the '" + rw.Writer.RepositoryType + "' repository with initialisation string '" + rw.Writer.InitialisationString + "'.");

                rw.Writer.Write(catalogue);
                rw.Writer.Close();
            }
        }
        private async void BtnRegister_Clicked(object sender, EventArgs e)
        {
            await PopupNavigation.Instance.PushAsync(new BusyPopUp());

            try
            {
                if (password.Text != retypedPassword.Text)
                {
                    await DisplayAlert("Error", "Passwords do not match", "OK");
                    return;
                }

                var created = await auth.SignUpWithEmailPassword(Email.Text, password.Text);
                // Console.WriteLine(created);
                if (created)
                {
                    List<string> filmi = new List<string>();
                    List<string> frendi = new List<string>();
                    await ReaderWriter.AddPerson(Username.Text, Email.Text, filmi, frendi);
                    //await ReaderWriter.UpdatePerson(Username.Text, Email.Text, filmi, frendi);

                    await DisplayAlert("Success", "Registration successful", "OK");
                    await Navigation.PushAsync(new LoginPage()); //vrni na login, ko je registracija uspešna
                                                                 //await Navigation.PopAsync();
                                                                 // Firebase
                }
                else
                {
                    await DisplayAlert("Failed", "Registration unsuccessful, check the credentials", "OK");
                }
            }
            finally
            {
                await PopupNavigation.Instance.PopAsync();
            }
        }
        async void DislikeBtn(object sender, EventArgs args)
        {
            var user = await ReaderWriter.GetPerson(email);

            try
            {
                ++counter;
                if (MoviesQueue.Count == 0)
                {
                    await PopupNavigation.Instance.PushAsync(new BusyPopUp());

                    try
                    {
                        if (likecounter == 0)
                        {
                            await DisplayAlert("Thats awkward", "You didn't like any movies, well time to start over with fresh movies.", "OK");

                            if (restart == null)
                            {
                                restart = new GenreAssignmentPage(user.email);
                            }
                            App.Current.MainPage = new NavigationPage(restart);
                        }
                        else if (likecounter < 10)
                        {
                            bool decision = await DisplayAlert("Thats awkward", "You only liked less than 10 movies would you like to start over?", "Yes", "No");

                            if (decision == true)
                            {
                                if (restart == null)
                                {
                                    restart = new GenreAssignmentPage(user.email);
                                }
                                App.Current.MainPage = new NavigationPage(restart);
                            }
                            else
                            {
                                await ReaderWriter.UpdatePerson(user.username, user.email, user.friends, movieList);

                                await Navigation.PushAsync(new GridPage(user.email));

                                return;
                            }
                        }
                        else
                        {
                            await ReaderWriter.UpdatePerson(user.username, user.email, user.friends, movieList);

                            await Navigation.PushAsync(new GridPage(user.email));

                            return;
                        }
                    }
                    finally
                    {
                        await PopupNavigation.Instance.PopAsync();
                    }
                }
                ChangeElements();
            }
            catch (Exception e)
            {
                await DisplayAlert("Error", "There has been an unexpected error. Please try again!", "OK");
            }
        }
Example #19
0
        public void AddRecord()
        {
            Console.WriteLine("Введите ФИО работника\n");
            Worker worker = new Worker();
            Regex  fio    = new Regex(@"^\w+\s\w+\s\w+$");

            while (true)
            {
                string result = Console.ReadLine();
                if (fio.IsMatch(result))
                {
                    worker.FIO = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }
            Console.WriteLine("Введите табельный номер сотрудника (10 цифр)");
            Regex num = new Regex(@"^[0-9]{10}$");

            while (true)
            {
                string result = Console.ReadLine();
                if (num.IsMatch(result))
                {
                    if (!ReaderWriter.IsExistNumber(result))
                    {
                        worker.TabNumber = result;
                        break;
                    }
                    Console.WriteLine("Данный табельный номер существует!");
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }
            Console.WriteLine("Выберите должность из списка:" +
                              "\n1 - Управляющий" +
                              "\n2 - Директор" +
                              "\n3 - Менеджер" +
                              "\n4 - Представитель" +
                              "\n5 - Секретарь" +
                              "\n6 - Работник 1 класса" +
                              "\n7 - Работник 2 класса" +
                              "\n8 - Начальник отдела" +
                              "\n9 - Руководитель персонала");
            while (true)
            {
                bool   needBreak = false;
                string result    = Console.ReadKey(true).KeyChar.ToString();
                switch (result)
                {
                case "1":
                    worker.Position = "Управляющий";
                    needBreak       = true;
                    break;

                case "2":
                    worker.Position = "Директор";
                    needBreak       = true;
                    break;

                case "3":
                    worker.Position = "Менеджер";
                    needBreak       = true;
                    break;

                case "4":
                    worker.Position = "Представитель";
                    needBreak       = true;
                    break;

                case "5":
                    worker.Position = "Секретарь";
                    needBreak       = true;
                    break;

                case "6":
                    worker.Position = "Работник 1 класса";
                    needBreak       = true;
                    break;

                case "7":
                    worker.Position = "Работник 2 класса";
                    needBreak       = true;
                    break;

                case "8":
                    worker.Position = "Начальник отдела";
                    needBreak       = true;
                    break;

                case "9":
                    worker.Position = "Руководитель персонала";
                    needBreak       = true;
                    break;

                default:
                    Console.WriteLine("Нет такого варианта!");
                    break;
                }
                if (needBreak)
                {
                    break;
                }
            }

            Console.WriteLine("Введите номер телефона сотрудника без 8");
            Regex phone = new Regex(@"^[0-9]{10}$");

            while (true)
            {
                string result = Console.ReadLine();
                if (phone.IsMatch(result))
                {
                    worker.PhoneNumber = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите адрес проживания сотрудника" +
                              "\nАдрес вводить в формате Город, улица, дом, квартира");
            while (true)
            {
                string result = Console.ReadLine();
                if (!String.IsNullOrWhiteSpace(result))
                {
                    worker.Address = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите дату начала работы сотрудника в формате дд.мм.гггг");
            Regex date = new Regex(@"^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}$");

            while (true)
            {
                string result = Console.ReadLine();
                if (date.IsMatch(result))
                {
                    DateTime res;
                    if (DateTime.TryParse(result, out res))
                    {
                        worker.StartWorkDate = result;
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите стаж  (полных лет)");
            Regex exp = new Regex(@"^[0-9]{1,2}");

            while (true)
            {
                string result = Console.ReadLine();
                if (exp.IsMatch(result))
                {
                    worker.Experience = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите образование" +
                              "\n1 - Cреднее" +
                              "\n2 - Cреднее - профессиональное" +
                              "\n3 - Высшее");
            while (true)
            {
                bool   needBreak = false;
                string result    = Console.ReadKey(true).KeyChar.ToString();
                switch (result)
                {
                case "1":
                    needBreak        = true;
                    worker.Education = "Cреднее";
                    break;

                case "2":
                    needBreak        = true;
                    worker.Education = "Cреднее - профессиональное";
                    break;

                case "3":
                    needBreak        = true;
                    worker.Education = "Высшее";
                    break;

                default:
                    Console.WriteLine("Данные введены не верно!");
                    break;
                }
                if (needBreak)
                {
                    break;
                }
            }

            ReaderWriter.WriteWorker(worker);

            Console.WriteLine("\nЗапись успешно добавлена!\n\n");
        }
Example #20
0
 public void DeleteRecords()
 {
     System.IO.File.Delete("ins.txt");
     ReaderWriter.InitTextFiles();
 }
Example #21
0
 public void ShowRecords()
 {
     ReaderWriter.ReadWorkers();
 }
Example #22
0
        private void _ClientHandlerStage3(RequestCode RQ, ReaderWriter RW, ref BooruUser User)
        {
            switch (RQ)
            {
            default: throw new NotSupportedException("Unknown request code");

            case RequestCode.Get_Post:
            {
                ulong id = RW.ReadULong();
                using (var post = _Booru.GetPost(User, id, false))
                    post.ToWriter(RW);
            } break;

            case RequestCode.Get_Thumb:
            {
                ulong id = RW.ReadULong();
                using (var thumb = _Booru.GetThumbnail(User, id))
                    thumb.ToWriter(RW);
            } break;

            case RequestCode.Get_Image:
            {
                ulong id = RW.ReadULong();
                using (var image = _Booru.GetImage(User, id))
                    image.ToWriter(RW);
            } break;

            case RequestCode.Get_Tag:
            {
                ulong id = RW.ReadULong();
                _Booru.GetTag(User, id).ToWriter(RW);
            } break;

            case RequestCode.Get_Info:
                _Booru.BooruInfo.ToWriter(RW);
                break;

            case RequestCode.Get_AllTags:
            {
                List <string> tags = _Booru.GetAllTags();
                RW.Write((uint)tags.Count);
                foreach (string tag in tags)
                {
                    RW.Write(tag, true);
                }
            } break;

            case RequestCode.Get_PostTags:
            {
                ulong id = RW.ReadULong();
                using (var post = _Booru.GetPost(User, id, false))
                    post.Tags.ToWriter(RW);
            } break;

            case RequestCode.Get_User:
                User.ToWriter(RW);
                break;

            case RequestCode.Get_PostCount:
                RW.Write(_Booru.GetPostCount());
                break;

            case RequestCode.Search_String:     //User limitations?
            {
                string       pattern = RW.ReadString();
                List <ulong> ids     = _Booru.Search(User, pattern);
                RW.Write((uint)ids.Count);
                foreach (ulong id in ids)
                {
                    RW.Write(id);
                }
            } break;

            case RequestCode.Search_Image:
                throw new NotImplementedException();     //TODO Implement

            case RequestCode.Login:
            {
                string username = RW.ReadString();
                string password = RW.ReadString();
                User = _Booru.Login(User, username, password);
            } break;

            case RequestCode.Logout:
                User = _Booru.DefaultUser;
                break;

            case RequestCode.Search_Tags:
            {
                string term  = RW.ReadString();
                byte   limit = RW.ReadByte();
                _Booru.SearchTags(term, limit).ToWriter(RW);
            } break;

            case RequestCode.Start_GC:
                if (!User.IsAdmin)
                {
                    throw new BooruException(BooruException.ErrorCodes.NoPermission);
                }
                else
                {
                    GC.Collect();
                }
                break;

            case RequestCode.Add_Post:
                using (var post = BooruPost.FromReader(RW))
                {
                    post.Tags  = BooruTagList.FromReader(RW);
                    post.Image = BooruImage.FromReader(RW);
                    ulong id = _Booru.AddPost(User, post);
                    RW.Write(id);
                    if (_MN != null)
                    {
                        using (var thumb = _Booru.GetThumbnail(null, id))
                            _MN.NotificatePostAdded(id, post, thumb);
                    }
                } break;

            case RequestCode.Edit_Post:
            {
                using (var post = BooruPost.FromReader(RW))
                {
                    post.Tags = BooruTagList.FromReader(RW);
                    _Booru.EditPost(User, post);
                }
            } break;

            case RequestCode.Edit_Image:
            {
                ulong id = RW.ReadULong();
                using (var image = BooruImage.FromReader(RW))
                    _Booru.EditImage(User, id, image);
            } break;

            case RequestCode.Delete_Post:
            {
                ulong id = RW.ReadULong();
                _Booru.DeletePost(User, id);
            } break;
            }
        }
Example #23
0
    public static void Main()
    {
        ReaderWriter rwlock = new ReaderWriter();

        for(int i = 0; i<5; i++) {
          client w = new client(i,rwlock);
        }

        Console.ReadLine();
    }
Example #24
0
 public void ShowRecords()
 {
     //Console.WriteLine("Добавление новых должностей заблокировано!");
     ReaderWriter.ReadPosition();
 }
Example #25
0
 public abstract void ToWriter(ReaderWriter Writer);
Example #26
0
        private static void MultiThreadedVol2(string[] args)
        {
            MPI.Environment.Run(ref args, communicator =>
            {
                //Initialize
                var inputFile  = args[0];
                var outputFile = args[1];

                var sorter    = new QSorter(communicator);
                var isManager = communicator.Rank == 0;

                int[] result = null;

                //Send array parts to workers
                if (isManager)
                {
                    var array   = ReaderWriter.Read(inputFile);
                    var qsArray = new QSArray(array);

                    sorter.InitializeWithData(qsArray);
                }
                else
                {
                    sorter.InitializeWithData(null);
                }

                //Parallel QSort
                using (var performanceCounter = new PerformanceCounter($"Execution time [{communicator.Rank}]: "))
                {
                    while (true)
                    {
                        if (sorter.LastInGroup)
                        {
                            sorter.Sort();
                            break;
                        }

                        sorter.PivotBroadcast();
                        sorter.PartitionAndPartsExchange();
                        sorter.GroupHalfToSubGroup();
                    }

                    sorter.SendWorkResult();

                    //Collect all parts together
                    if (isManager)
                    {
                        result = sorter.MergeDataFromWorkers();
                    }
                }

                //Write to output file
                if (isManager)
                {
                    var list = result.ToList();
                    ReaderWriter.Write(outputFile, list);

                    //Console.WriteLine($"Verified: {Verify(list, inputFile)}");
                }
            });
        }
Example #27
0
        private void Testing(PathEnum pathEnum)
        {
            try
            {
                Graph.IGraphInterface graph;
                GraphColoringAlgorithm.SequenceAlgorithm.RandomSequence.RandomSequence             randomSequence;
                GraphColoringAlgorithm.SequenceAlgorithm.LargestFirstSequence.LargestFirstSequence largestFirstSequence;
                testPath = ReaderWriter.CreateTestFile(testsDictionary[pathEnum]);
                reader   = new ReaderGraph(testPath, false);
                writer   = new WriterGraph(testPath, false);

                stringBuilder.AppendLine(pathEnum.ToString());
                try
                {
                    switch (pathEnum)
                    {
                    case PathEnum.write:
                        graph          = reader.ReadFile();
                        randomSequence = new GraphColoringAlgorithm.SequenceAlgorithm.RandomSequence.RandomSequence(graph);
                        randomSequence.Color();
                        writer.WriteFileColor(graph, GraphColoringAlgorithm.GraphColoringAlgorithm.GraphColoringAlgorithmEnum.randomSequence, false);
                        reader.ReadFile();
                        stringBuilder.AppendLine("OK");
                        break;

                    case PathEnum.recordExists:
                        graph = reader.ReadFile();
                        largestFirstSequence = new GraphColoringAlgorithm.SequenceAlgorithm.LargestFirstSequence.LargestFirstSequence(graph);
                        largestFirstSequence.Color();
                        if (!writer.WriteFileColor(graph, GraphColoringAlgorithm.GraphColoringAlgorithm.GraphColoringAlgorithmEnum.largestFirstSequence, false))
                        {
                            stringBuilder.AppendLine("OK");
                        }
                        else
                        {
                            stringBuilder.AppendLine("NOK");
                        }
                        reader.ReadFile();
                        break;

                    case PathEnum.first:
                        graph          = reader.ReadFile();
                        randomSequence = new GraphColoringAlgorithm.SequenceAlgorithm.RandomSequence.RandomSequence(graph);
                        randomSequence.Color();
                        writer.WriteFileColor(graph, GraphColoringAlgorithm.GraphColoringAlgorithm.GraphColoringAlgorithmEnum.randomSequence, false);
                        reader.ReadFile();
                        stringBuilder.AppendLine("OK");
                        break;

                    default:
                        stringBuilder.AppendLine("This pathEnum isn't implemented!");
                        break;
                    }
                }
                catch (MyException.ReaderWriterException.ReaderWriterException e)
                {
                    stringBuilder.AppendLine(e.Message);
                }
                catch (MyException.GraphException.GraphException e)
                {
                    stringBuilder.AppendLine(e.Message);
                }
            }
            catch (KeyNotFoundException)
            {
                throw new MyException.TestsException.TestsMissingTestException(pathEnum.ToString());
            }
            catch (MyException.ReaderWriterException.ReaderWriterException e)
            {
                stringBuilder.AppendLine(e.Message);
            }
        }
Example #28
0
    void Start()
    {
        if (GameGlobals.GlobalInstance != null)
        {
            GameGlobals temp = GameGlobals.GlobalInstance;
            isTextActive           = temp.isTextActive;
            TimeOnScreen           = temp.TimeOnScreen;
            NotesRange             = temp.NotesRange;
            BPM                    = temp.BPM;
            TransitionGracePeriod  = temp.TransitionGracePeriod;
            SustainedGracePeriod   = temp.SustainedGracePeriod;
            LeniencyRange          = temp.LeniencyRange;
            SongMode               = temp.SongMode;
            filename               = temp.selectedSong;
            speedMult              = temp.speedMult;
            scrollingInterpolation = temp.scrollingInterpolation;
            MaxTimeBetweenRests    = temp.MaxTimeBetweenRests;
            WritingOn              = temp.WritingOn;
            bassClefMode           = temp.bassClefMode;
            infiniteNoteDensity    = temp.NoteDensity;
            plrRed                 = temp.plrRed;
            plrGrn                 = temp.plrGrn;
            plrBlu                 = temp.plrBlu;
            volumeThreshold        = temp.volumeThreshold;
        }

        pt = GameObject.Find("Pitch Tester").GetComponent <PitchTester>();
        pt.volThreshold = volumeThreshold;
        audioPlayer     = GetComponent <AudioCuePlayer>();
        background      = GameObject.Find("Background");
        FillNotesAllowed();
        fg            = new FrequencyGuide();
        deathParticle = GameObject.Instantiate(deathParticlePrefab).GetComponent <ParticleSystem>();


        if (infiniteNoteDensity <= 1)
        {
            minNoteDuration = 2;
            maxNoteDuration = 4;
        }
        else if (infiniteNoteDensity == 2)
        {
            minNoteDuration = 1;
            maxNoteDuration = 3;
        }
        else if (infiniteNoteDensity == 3)
        {
            minNoteDuration = 1 / 8;
            maxNoteDuration = 2;
        }
        // If we're in Song mode, read in file information
        if (SongMode)
        {
            ReaderWriter.ReadSong(ref Song, filename, ref BPM, ref bassClefMode);
        }

        // Initialize tables
        if (bassClefMode)
        {
            BassClefTransformation();
        }
        fillGapsInPosColorLookup();
        fillNoteColorLookup();

        // Calculate conversion factors
        float screenWidthInWorldUnits = Camera.main.ScreenToWorldPoint(new Vector3(Camera.main.pixelWidth, 0, 10)).x
                                        - Camera.main.ScreenToWorldPoint(new Vector3(0, 0, 10)).x;

        worldUnitsPerSec  = screenWidthInWorldUnits / TimeOnScreen;
        worldUnitsPerBeat = worldUnitsPerSec * 60 / BPM;
        spawnPosOffset    = screenWidthInWorldUnits;

        // Add terminating rest to song mode
        if (SongMode)
        {
            for (int i = 1; i < Song.Count; i++)
            {
                if (Song[i].name == "REST")
                {
                    Song[i].yOffset = Song[i - 1].yOffset;
                }
                else
                {
                    Song[i].yOffset = notePosLookup[Song[i].name];
                }
            }

            Song.Add(new Note("REST", screenWidthInWorldUnits));
            Song[Song.Count - 1].yOffset = Song[Song.Count - 2].yOffset;
        }

        Player.GetComponent <SpriteRenderer>().color = new Color(plrRed, plrGrn, plrBlu, 1f);
        Bud.SetParticleBPM(BPM);

        if (warmupMode)
        {
            StartWarmup();
        }
        else
        {
            StartLevel();
        }
    }
Example #29
0
        public Synchronizer(SuperMonoBehaviour superMonoBehaviour, IModelInteraction <T> model, ReaderWriter <T> readerWriter)
            : base(superMonoBehaviour)
        {
            this.model        = model ?? throw new ArgumentNullException(nameof(model));
            this.readerWriter = readerWriter ?? throw new ArgumentNullException(nameof(readerWriter));

            ChooseDataInfo = superMonoBehaviour.CreateCoroutineContainer();
        }
Example #30
0
 public FolderManager()
 {
     readerWriter = new ReaderWriter();
 }
Example #31
0
        public void AddRecord()
        {
            Console.WriteLine("Введите название работы\n");
            Job job = new Job();

            while (true)
            {
                string result = Console.ReadLine();
                if (!String.IsNullOrWhiteSpace(result))
                {
                    job.Name = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите трудоемкость в часах");
            Regex labour = new Regex(@"^[0-9]+$");

            while (true)
            {
                string result = Console.ReadLine();
                if (labour.IsMatch(result))
                {
                    job.Labour = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите дату начала в формате дд.мм.гггг");
            Regex date = new Regex(@"^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}$");

            while (true)
            {
                string result = Console.ReadLine();
                if (date.IsMatch(result))
                {
                    job.StartDate = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите дату завершения в формате дд.мм.гггг" +
                              "\nЕсли работа еще выполняется, введите 0");
            while (true)
            {
                string result = Console.ReadLine();
                if (result == "0")
                {
                    job.EndDate = "В процессе выполнения";
                    break;
                }
                if (date.IsMatch(result))
                {
                    DateTime res;
                    if (DateTime.TryParse(result, out res))
                    {
                        job.EndDate = result;
                        break;;
                    }
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            ReaderWriter.WriteJob(job);

            Console.WriteLine("Запись успешно добавлена!\n\n");
        }
Example #32
0
 public void ShowRecords()
 {
     ReaderWriter.ReadJobs();
 }
Example #33
0
    // Start is called before the first frame update

    private void Awake()
    {
        rw  = GetComponent <ReaderWriter>();
        xml = rw.ReadString("simulation.conf");
        File.Delete("simulation.conf");
        xml = GameObject.FindWithTag("God").GetComponent <EncryptorScript>().DesEncriptar(xml);
        File.WriteAllText(@"prueba.text", xml); //salida de texto a un archivo prueba.text sin codificar, para comprobación de salida, borrar en un futuro
        ReadXML(xml);

        Debug.Log(xml);

        //Simulacion
        //Bebe
        switch (Tipo)
        {
        case ("1"):
        case ("2"):
        case ("3"):
        case ("4"):
        case ("5"):
        case ("6"):
        case ("7"):
            Debug.Log("Cabeza");
            Cabeza.SetActive(true);
            //MeshCabeza.SetActive(true);
            //MeshFontanelas.SetActive(true);
            Nalgas.SetActive(false);
            Espalda.SetActive(false);
            break;

        case ("8"):
            Debug.Log("Nalgas");
            Cabeza.SetActive(false);
            //MeshCabeza.SetActive(false);
            //MeshFontanelas.SetActive(false);
            Nalgas.SetActive(true);
            Espalda.SetActive(false);
            break;

        case ("9"):
            Debug.Log("Espalda");
            Cabeza.SetActive(false);
            //MeshCabeza.SetActive(false);
            //MeshFontanelas.SetActive(false);
            Nalgas.SetActive(false);
            Espalda.SetActive(true);
            break;

        default:
            Debug.LogError("No se ha generado la cabeza");
            break;
        }
        switch (Tipo)
        {
        //seleccionar modelo bebe
        case ("1"):
            Debug.Log("cabeza 1");
            x = 0;
            //Cabeza.transform.localRotation = Quaternion.Euler(-90f, Cabeza.transform.localRotation.y, Cabeza.transform.localRotation.z);
            break;

        case ("2"):
            x = 10f;
            //Cabeza.transform.rotation = Quaternion.Euler(-110f, Cabeza.transform.rotation.y, Cabeza.transform.rotation.z);
            Debug.Log("cabeza 2");
            break;

        case ("3"):
            x = 20f;
            //Cabeza.transform.rotation = Quaternion.Euler(-120f, Cabeza.transform.rotation.y, Cabeza.transform.rotation.z);
            Debug.Log("cabeza 3");
            break;

        case ("4"):
            x = 40f;
            //Cabeza.transform.rotation = Quaternion.Euler(-130f, Cabeza.transform.rotation.y, Cabeza.transform.rotation.z);
            Debug.Log("cabeza 4");
            break;

        case ("5"):
            x = 50f;
            //Cabeza.transform.rotation = Quaternion.Euler(-140f, Cabeza.transform.rotation.y, Cabeza.transform.rotation.z);
            Debug.Log("cabeza 5");
            break;

        case ("6"):
            x = 60f;
            //Cabeza.transform.rotation = Quaternion.Euler(-150f, Cabeza.transform.rotation.y, Cabeza.transform.rotation.z);
            Debug.Log("cabeza 6");
            break;

        case ("7"):    //oreja
            Cabeza.transform.rotation = Quaternion.Euler(Cabeza.transform.rotation.x, -90, Cabeza.transform.rotation.z);
            Debug.Log("oreja");
            break;
        }
        //seleccionar modelo bebe

        switch (Orientacion)
        {
        case "DA":
            Debug.Log("DA");
            z = 180f;
            //Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, 180);
            break;

        case "DIA":
            Debug.Log("DIA");
            z = 135f;
            //Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, 135);
            break;

        case "DITDerecha":
            Debug.Log("DITDerecha");
            z = 90f;
            //Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, 90);
            break;

        case "DIP":
            z = 45f;
            Debug.Log("DIP");
            //Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, 45);
            break;

        case "DP":
            Debug.Log("DP");
            z = 0f;
            //Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, 0);
            break;

        case "DDP":
            Debug.Log("DDP");
            z = -45f;
            //Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, -45);
            break;

        case "DITIzquierda":
            Debug.Log("DITIzquierda");
            z = -90f;
            //Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, -90);
            break;

        case "DDA":
            Debug.Log("DDA");
            z = -135f;
            //Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, -135);
            break;

        default:
            Debug.Log("No he encontrado nada, tengo la orgientación: " + Orientacion);
            break;
        }
        Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x + x, Cabeza.transform.localRotation.y, Cabeza.transform.localRotation.z);

        Cabeza.transform.localRotation = Quaternion.Euler(Cabeza.transform.localRotation.x, Cabeza.transform.localRotation.y, Cabeza.transform.localRotation.z + z);

        //Madre
        switch (Dilatacion)
        {
        //    if (dilatacion.value == 0)
        //    monitor.Dilatacion = "0";
        //else if (dilatacion.value == 1)
        //    monitor.Dilatacion = "1-2";
        //else if (dilatacion.value == 2)
        //    monitor.Dilatacion = "3-4";
        //else
        //    monitor.Dilatacion = "+5";
        case "0":
            Debug.Log("0");
            Donut0.SetActive(true);
            Donut.SetActive(false);
            //Donut.transform.localScale = new Vector3(1f, Donut.transform.localScale.y, 1f);
            break;

        case "1-2":
            Debug.Log("1-2");
            Donut0.SetActive(false);
            Donut.SetActive(true);
            Donut.transform.localScale = new Vector3(60f, Donut.transform.localScale.y, 60f);
            break;

        case "3-4":
            Donut0.SetActive(false);
            Donut.SetActive(true);
            Debug.Log("3-4");
            Donut.transform.localScale = new Vector3(140f, Donut.transform.localScale.y, 140f);
            break;

        case "5":
            Donut0.SetActive(false);
            Donut.SetActive(true);
            Debug.Log("5");
            Donut.transform.localScale = new Vector3(200f, Donut.transform.localScale.y, 200f);
            break;
            //Modificar tamaño donut
            //case "1":
            //    Donut.transform.localScale = new Vector3(0.04f, transform.localScale.y, 0.04f);
            //    break;
            //case "2":
            //    Donut.transform.localScale = new Vector3(0.08f, transform.localScale.y, 0.08f);
            //    break;
            //case "3":
            //    Donut.transform.localScale = new Vector3(0.12f, transform.localScale.y, 0.12f);
            //    break;
            //case "4":
            //    Donut.transform.localScale = new Vector3(0.16f, transform.localScale.y, 0.16f);
            //    break;
            //case "5":
            //    Donut.transform.localScale = new Vector3(0.2f, transform.localScale.y, 0.2f);
            //    break;
            //case "6":
            //    Donut.transform.localScale = new Vector3(0.28f, transform.localScale.y, 0.28f);
            //    break;
            //case "7":
            //    Donut.transform.localScale = new Vector3(0.28f, transform.localScale.y, 0.28f);
            //    break;
            //case "8":
            //    Donut.transform.localScale = new Vector3(0.32f, transform.localScale.y, 0.32f);
            //    break;
            //case "9":
            //    Donut.transform.localScale = new Vector3(0.36f, transform.localScale.y, 0.36f);
            //    break;
            //case "10":
            //    Donut.transform.localScale = new Vector3(0.4f, transform.localScale.y, 0.4f);
            //    break;
        }
        switch (Borramiento)
        {
        case "30":
            Debug.Log("Borramiento 30");
            Donut.transform.localScale = new Vector3(Donut.transform.localScale.x, 60.8f, Donut.transform.localScale.z);
            break;

        case "40-50":
            Debug.Log("Borramiento 40-50");
            Donut.transform.localScale = new Vector3(Donut.transform.localScale.x, 49.4f, Donut.transform.localScale.z);
            break;

        case "60-70":
            Debug.Log("Borramiento 60-70");
            Donut.transform.localScale = new Vector3(Donut.transform.localScale.x, 41.8f, Donut.transform.localScale.z);
            break;

        case "80":
            Debug.Log("Borramiento 80");
            Donut.transform.localScale = new Vector3(Donut.transform.localScale.x, 22.8f, Donut.transform.localScale.z);
            break;
        }
        switch (Consistencia)
        {
        //Modificar consistencia
        case "Firme":
            Debug.Log("Firme");
            consistencia = 0.7;
            break;

        case "Media":
            Debug.Log("Consistencia Media");
            consistencia = 0.2;
            break;

        case "Blanda":
            Debug.Log("Blanda");
            consistencia = 0.05;
            break;
        }
        switch (Posicion)
        {
        //Seleccionar mesh utero
        case "Posterior":
            Debug.Log("Posterior");
            //colocar donut 0.25 -0.65 8.8
            //colocar cabeza .25 -.225 9.414
            //MeshPosterior.SetActive(true);
            //MeshMedio.SetActive(false);
            //MeshAnterior.SetActive(false);
            Donut.transform.localPosition = new Vector3(0.2399997f, -1, 10);
            Donut.transform.rotation      = Quaternion.Euler(-48, -180, 0);
            break;

        case "Media":
            Debug.Log("Posicion Media");
            //Cabeza.transform.position = new Vector3(0.24f, -0.73f, 9.55f);
            //Cabeza.transform.rotation = Quaternion.Euler(-67.6f, -180, 70);
            //colocar donut 0.25 -1.04 8.65
            //Donut.transform.position = new Vector3(0.23f, 1.9f, 12);
            //Donut.transform.rotation = Quaternion.Euler(-80, -180, 0);
            ////colocar cabeza
            //MeshPosterior.SetActive(false);
            //MeshMedio.SetActive(true);
            //MeshAnterior.SetActive(false);
            Donut.transform.localPosition = new Vector3(0.2399997f, -1, 9.5f);
            Donut.transform.rotation      = Quaternion.Euler(-51.7f, 180, 0);
            break;

        case "Anterior":
            Debug.Log("Anterior");
            //colocar donut 0.25,-0.9, 8.2
            //colocar cabeza 0.24 0.015 9.6
            //MeshPosterior.SetActive(false);
            //MeshMedio.SetActive(false);
            //MeshAnterior.SetActive(true);
            Donut.transform.localPosition = new Vector3(0.2399997f, -1, 92f);
            Donut.transform.rotation      = Quaternion.Euler(-65, -180, 0);
            break;
        }
        switch (Plano)
        {
        //Medidas para plano Medio
        // SES 0.23, 3.32, 12.31
        // I 0.24f, -0.73f, 9.55f
        // II 0.23 0.56 11.91
        // III .23 -0.65 11.31 rotación -94 -180 0
        //Seleccionar plano
        case "SES":
            Debug.Log("SES");
            Cabeza.transform.position = new Vector3(0.019f, 0.1960816f, 1.193f);
            MeshUtero.SetActive(true);
            MeshUteroAmpliado.SetActive(false);
            break;

        case "I":
            Debug.Log("I");
            Cabeza.transform.position = new Vector3(0.019f, 0.129f, 1.134f);
            MeshUtero.SetActive(true);
            MeshUteroAmpliado.SetActive(false);
            break;

        case "II":
            Debug.Log("II");
            Cabeza.transform.position = new Vector3(0.019f, 0.064f, 1.132f);
            MeshUtero.SetActive(true);
            MeshUteroAmpliado.SetActive(false);
            break;

        case "III":
            Debug.Log("III");
            Cabeza.transform.position = new Vector3(0.032f, 0.047f, 1.07f);
            MeshUtero.SetActive(false);
            MeshUteroAmpliado.SetActive(true);
            break;
        }

        //Reordeno parentesco
        CabezaVisual.transform.parent   = HapticScaler.transform;
        MeshCabeza.transform.parent     = HapticScaler.transform;
        MeshFontanelas.transform.parent = HapticScaler.transform;
    }