Beispiel #1
0
 public Context(BaseDeclares declares, BaseOperations operations, BaseSetters setters, BaseConstants constant)
 {
     Declares   = declares;
     Operations = operations;
     Setters    = setters;
     Constant   = constant;
 }
Beispiel #2
0
 /// <summary>
 /// The entry point of the algorithm
 /// </summary>
 static public void Start()
 {
     //Initializing BaseOperations
     BaseOperations.Initlaize("AudiosInfo.txt", "readme.txt");
     //Iterate through files
     foreach (FileDescription file in BaseOperations.Files)
     {
         bool FoundFolder = false;
         //iterate through folders
         foreach (FolderDescription folder in BaseOperations.Folders)
         {
             //check the file duration if it fits in the folder
             if (folder.CheckLength(file.Duration))
             {
                 FoundFolder           = true;
                 folder.CurrentLength += file.Duration;
                 BaseOperations.MoveFile(file, folder);
                 break;
             }
         }
         //if there is no folder a new one will be created
         if (!FoundFolder)
         {
             FolderDescription folder = BaseOperations.ConstructFolder();
             if (!folder.CheckLength(file.Duration))
             {
                 throw new ArgumentOutOfRangeException("File size is larger than max folder size");
             }
             folder.CurrentLength += file.Duration;
             BaseOperations.MoveFile(file, folder);
         }
     }
 }
Beispiel #3
0
        /// <summary>
        /// Получить базовую операцию по Lua-имени
        /// </summary>
        /// <param name="luaName">Lua-имя</param>
        /// <returns></returns>
        public BaseOperation GetBaseOperationByLuaName(string luaName)
        {
            var operation = BaseOperations.Where(x => x.LuaName == luaName)
                            .FirstOrDefault();

            return(operation);
        }
Beispiel #4
0
        public EvaluationResult Evaluate(EvaluationState state, ReadOnlyList <IEvaluate> args, ReadOnlyList <Object> data)
        {
            EvaluationResult checkagainst = args[0].Evaluate(state);
            EvaluationResult first        = args[1].Evaluate(state);
            EvaluationResult second       = args[2].Evaluate(state);

            Operator compare = (Operator)data[0];
            Symbol   pre_op  = (Symbol)data[1];
            Symbol   post_op = (Symbol)data[2];

            return(BaseOperations.Range(checkagainst, first, second, compare, pre_op, post_op));
        }
Beispiel #5
0
        /// <summary>
        /// Добавить базовую операцию
        /// </summary>
        /// <param name="luaName">Lua-имя</param>
        /// <param name="name">Имя</param>
        /// <returns></returns>
        public BaseOperation AddBaseOperation(string luaName, string name)
        {
            if (BaseOperations.Count == 0)
            {
                // Пустой объект, если не должно быть выбрано никаких объектов
                BaseOperations.Add(BaseOperation.EmptyOperation());
            }

            var operation = BaseOperation.EmptyOperation();

            operation.LuaName = luaName;
            operation.Name    = name;
            BaseOperations.Add(operation);

            return(operation);
        }
Beispiel #6
0
        static public void BestFitFilling(string InputFolderpath, string OutputFolderpath)
        {
            BaseOperations.Initlaize("AudiosInfo.txt", "readme.txt");
            // creating output folder if not exist
            if (!Directory.Exists(OutputFolderpath))
            {
                DirectoryInfo di = Directory.CreateDirectory(OutputFolderpath);
            }
            //creating Bestfit folder if not exist
            string bestfitpath = OutputFolderpath + @"\[5] bestfit";

            if (!Directory.Exists(bestfitpath))
            {
                DirectoryInfo di2 = Directory.CreateDirectory(bestfitpath);
            }
            //creating files with the names in BFfolders if not exist
            for (int i = 0; i < BFfolders.Count; i++)
            {
                string foldercount = (i + 1).ToString();
                string folderpath  = bestfitpath + @"\F" + foldercount;
                if (!Directory.Exists(folderpath))
                {
                    DirectoryInfo di3 = Directory.CreateDirectory(folderpath);
                }
                string folderMetaData   = bestfitpath + @"\F" + foldercount + "_METADATA.txt";
                System.IO.FileStream F1 = new FileStream(folderMetaData, FileMode.Create);
                StreamWriter         w1 = new StreamWriter(F1);
                w1.WriteLine("F" + foldercount);

                for (int j = 0; j < BFfolders[i].FolderAudios.Count; j++)
                {
                    string filepath   = InputFolderpath + BFfolders[i].FolderAudios[j].name;
                    string filetarget = folderpath + @"\" + BFfolders[i].FolderAudios[j].name;
                    System.IO.File.Copy(filepath, filetarget, true);

                    w1.WriteLine(BFfolders[i].FolderAudios[j].name + " " + BFfolders[i].FolderAudios[j].hours + ":" + BFfolders[i].FolderAudios[j].min + ":" + BFfolders[i].FolderAudios[j].sec);
                }
                w1.WriteLine(BFfolders[i].hours + ":" + BFfolders[i].min + ":" + BFfolders[i].sec);
                w1.Close();
            }
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            //BaseOperations.Initlaize("AudiosInfo.txt", "readme.txt");
            // BaseOperations.SortInDecreasing();
            // FittingOperations.worst_fit(@"c:\Audios", @"c:\Output\[4] folderfilling");
            //FittingOperations.filling.write(@"c:\Audios", @"c:\Output\[4] folderfilling");
            BaseOperations.Initlaize("AudiosInfo.txt", "readme.txt");

            FittingOperations.BestFit.Best_fit();


            //set the source (input-audios folder) in the same way here
            string input = @"C:\Users\pc\Downloads\Project\sample test\sample 1\INPUT\Audios\";
            //set the destination(output folder)in the same way here
            string output = @"C:\Users\pc\Downloads\Project\sample test\sample 1\output\";



            FittingOperations.BestFit.BestFitFilling(input, output);
            ///Just more
            ///
            ///
        }
Beispiel #8
0
        public decimal Mult([FromBody] OperationModel operationModel)
        {
            var operation = new BaseOperations();

            return(operation.Multiplication(operationModel.ValueA, operationModel.ValueB));
        }
Beispiel #9
0
        public decimal Sub([FromBody] OperationModel operationModel)
        {
            var operation = new BaseOperations();

            return(operation.Subtraction(operationModel.ValueA, operationModel.ValueB));
        }
Beispiel #10
0
        public static void write(string Source, string Destination)
        {
            BaseOperations.Initlaize("AudiosInfo.txt", "readme.txt");
            for (int i = 0; i < 200; i++)
            {
                for (int j = 0; j < 800; j++)
                {
                    dp[i, j] = -2;
                }
            }
            string path = Destination;

            if (!Directory.Exists(path))
            {
                DirectoryInfo di = Directory.CreateDirectory(path);
            }
            int    k           = 1;
            string FileName    = path;
            string source      = Source;
            string destination = "";
            int    no          = 0;
            int    h           = 0;

            while (BaseOperations.num_of_rec != 0)
            {
                int i = 0;
                path        = Destination;
                source      = Source;
                destination = "";
                FileName    = path;
                DirectoryInfo di;
                fill(0);
                no = ans.Count;
                for (int r = 0; r < 200; r++)

                {
                    for (int j = 0; j < 800; j++)
                    {
                        dp[i, j] = -2;
                    }
                }
                if (no == 1)
                {
                    for (int num = 0; num < BaseOperations.Audio_files.Count; num++)
                    {
                        path        = Destination;
                        FileName    = path;
                        source      = Source;
                        path       += @"\f" + k;
                        di          = Directory.CreateDirectory(path);
                        source     += @"\" + (BaseOperations.Audio_files[num].index) + ".mp3";
                        destination = path + @"\" + (BaseOperations.Audio_files[num].index) + ".mp3";
                        System.IO.File.Copy(source, destination);
                        Console.WriteLine(source + "  " + destination);
                        FileName += @"\f" + k + "_MetaData.txt";
                        System.IO.FileStream F1 = new FileStream(FileName, FileMode.Create);
                        StreamWriter         w1 = new StreamWriter(F1);
                        w1.WriteLine("f" + k);
                        w1.WriteLine(BaseOperations.Audio_files[num].name + " " + BaseOperations.Audio_files[num].hours + ":" + BaseOperations.Audio_files[num].min + ":" + BaseOperations.Audio_files[num].sec);
                        w1.WriteLine(BaseOperations.Audio_files[num].hours + ":" + BaseOperations.Audio_files[num].min + ":" + BaseOperations.Audio_files[num].sec);
                        w1.Close();
                        k++;
                        i++;
                    }
                    return;
                }
                path += @"\f" + k;
                di    = Directory.CreateDirectory(path);
                int w3 = 0;
                for (; i < no; i++)
                {
                    source      = Source;
                    source     += @"\" + (ans[w3].index) + ".mp3";
                    destination = path + @"\" + (ans[w3].index) + ".mp3";
                    System.IO.File.Copy(source, destination);
                    w3++;
                }
                FileName += @"\f" + k + "_MetaData.txt";
                System.IO.FileStream F = new FileStream(FileName, FileMode.Create);
                StreamWriter         w = new StreamWriter(F);
                w.WriteLine("f" + k);
                Audios tem = new Audios();
                for (int j = 0; j < no; j++)
                {
                    w.WriteLine(ans[j].name + " " + ans[j].hours + ":" + ans[j].min + ":" + ans[j].sec);
                    tem.hours += ans[j].hours;
                    tem.min   += ans[j].min;
                    tem.sec   += ans[j].sec;
                }
                w.WriteLine(tem.hours + ":" + tem.min + ":" + tem.sec);
                k++;
                w.Close();
                int var = 0;
                for (int it = 0; it < no; it++)
                {
                    var = ans[it].index - 1 - h;
                    if (var < 0)
                    {
                        var = 0;
                    }
                    BaseOperations.Audio_files.RemoveAt(var);
                    h++;
                }

                BaseOperations.num_of_rec -= no;
                ans.Clear();
                count    = 0;
                MaxCount = 0;
            }
        }
Beispiel #11
0
    static public void First_fit(string Source, string Destination)
    {
        BaseOperations.Initlaize("AudiosInfo.txt", "readme.txt");
        BaseOperations.SortInDecreasing();
        string path = Destination;

        if (!Directory.Exists(path))
        {
            DirectoryInfo di = Directory.CreateDirectory(path);
        }
        int    k           = 1;
        string FileName    = path;
        string source      = Source;
        string destination = "";

        for (int i = 0; i < BaseOperations.num_of_rec; i++)
        {
            path        = Destination;
            source      = Source;
            destination = "";
            FileName    = path;
            int    directoryCount = System.IO.Directory.GetDirectories(path).Length;
            long   max            = 0;
            int    index          = 0;
            bool   test           = true;
            Folder Temp_folder    = new Folder();
            if (directoryCount == 0)
            {
                path += @"\f" + k;
                DirectoryInfo di = Directory.CreateDirectory(path);
                Temp_folder.hours       = BaseOperations.Audio_files[i].hours;
                Temp_folder.min         = BaseOperations.Audio_files[i].min;
                Temp_folder.sec         = BaseOperations.Audio_files[i].sec;
                Temp_folder.free_space  = BaseOperations.max_size;
                Temp_folder.free_space -= BaseOperations.Audio_files[i].total_in_sec;
                BaseOperations.Audio_Folders.Add(Temp_folder);
                source     += @"\" + (BaseOperations.Audio_files[i].index) + ".mp3";
                destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".mp3";
                System.IO.File.Move(source, destination);
                FileName += @"\f" + k + "_MetaData.txt";
                System.IO.FileStream F = new FileStream(FileName, FileMode.Create);
                StreamWriter         w = new StreamWriter(F);
                w.WriteLine("f" + k);
                w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                w.Close();
                k++;
            }
            else
            {
                for (int j = 0; j < directoryCount; j++)
                {
                    if (BaseOperations.Audio_Folders[j].free_space >= BaseOperations.Audio_files[i].total_in_sec)
                    {
                        BaseOperations.Audio_Folders[j].hours      += BaseOperations.Audio_files[i].hours;
                        BaseOperations.Audio_Folders[j].min        += BaseOperations.Audio_files[i].min;
                        BaseOperations.Audio_Folders[j].sec        += BaseOperations.Audio_files[i].sec;
                        BaseOperations.Audio_Folders[j].free_space -= BaseOperations.Audio_files[i].total_in_sec;
                        path       += @"\f" + (j + 1);
                        source     += @"\" + (BaseOperations.Audio_files[i].index) + ".mp3";
                        destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".mp3";
                        System.IO.File.Move(source, destination);
                        FileName += @"\f" + (j + 1) + "_MetaData.txt";
                        System.IO.FileStream F = new FileStream(FileName, FileMode.Append);
                        StreamWriter         w = new StreamWriter(F);
                        w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                        w.Close();
                        test = false;
                        break;
                    }
                }
                if (test)
                {
                    path        = Destination;
                    source      = Source;
                    destination = "";
                    FileName    = path;
                    path       += @"\f" + k;
                    DirectoryInfo di = Directory.CreateDirectory(path);
                    Temp_folder.hours       = BaseOperations.Audio_files[i].hours;
                    Temp_folder.min         = BaseOperations.Audio_files[i].min;
                    Temp_folder.sec         = BaseOperations.Audio_files[i].sec;
                    Temp_folder.free_space  = BaseOperations.max_size;
                    Temp_folder.free_space -= BaseOperations.Audio_files[i].total_in_sec;
                    BaseOperations.Audio_Folders.Add(Temp_folder);
                    source     += @"\" + (BaseOperations.Audio_files[i].index) + ".mp3";
                    destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".mp3";
                    System.IO.File.Move(source, destination);
                    FileName += @"\f" + k + "_MetaData" + ".txt";
                    System.IO.FileStream F = new FileStream(FileName, FileMode.Create);
                    StreamWriter         w = new StreamWriter(F);
                    w.WriteLine("f" + k);
                    w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                    w.Close();
                    k++;
                }
            }
        }
        int no = 0;

        FileName = Destination + @"\f" + (no + 1) + "_MetaData.txt";
        for (; no < k - 1; no++)
        {
            FileName = @"c:\Output\[1] FirstfitDecreasing\f" + (no + 1) + "_MetaData.txt";
            System.IO.FileStream F = new FileStream(FileName, FileMode.Append);
            StreamWriter         w = new StreamWriter(F);
            w.WriteLine(BaseOperations.Audio_Folders[no].hours + ":" + BaseOperations.Audio_Folders[no].min + ":" + BaseOperations.Audio_Folders[no].sec);
            w.Close();
        }
    }
    /// <summary>
    /// The Avarge Complixty for worst_fit Priorty Queue Is O(NlogN)
    /// </summary>
    /// <param name="Source">Source of Data</param>
    /// <param name="Destination"> Destination of Data</param>
    static public void worst_fitp(string Source, string Destination)
    {
        // Initlaize The Prameters
        BaseOperations.Initlaize("AudiosInfo.txt", "readme.txt"); // O(N)
        PriorityQueue <Folder> PQ = new PriorityQueue <Folder>();
        string path = Destination;

        if (!Directory.Exists(path))
        {
            DirectoryInfo di = Directory.CreateDirectory(path);
        }
        int    k           = 1;
        string FileName    = path;
        string source      = Source;
        string destination = "";

        for (int i = 0; i < BaseOperations.num_of_rec; i++) // O(N)
        {
            path        = Destination;
            source      = Source;
            destination = "";
            FileName    = path;
            int directoryCount = System.IO.Directory.GetDirectories(path).Length;
            //long max = 0;
            int index = 0;
            //bool test = false;
            Folder Temp_folder = new Folder();
            if (directoryCount == 0)
            {
                // Adding The Frist Folder
                path += @"\f" + k;
                DirectoryInfo di = Directory.CreateDirectory(path);
                Temp_folder.hours       = BaseOperations.Audio_files[i].hours;
                Temp_folder.min         = BaseOperations.Audio_files[i].min;
                Temp_folder.sec         = BaseOperations.Audio_files[i].sec;
                Temp_folder.free_space  = BaseOperations.max_size;
                Temp_folder.free_space -= BaseOperations.Audio_files[i].total_in_sec;
                Temp_folder.index       = k;
                BaseOperations.Audio_Folders.Add(Temp_folder);
                PQ.Enqueue(Temp_folder);
                source     += @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                System.IO.File.Copy(source, destination);
                FileName += @"\f" + k + "_MetaData.txt";
                System.IO.FileStream F = new FileStream(FileName, FileMode.Create);
                StreamWriter         w = new StreamWriter(F);
                w.WriteLine("f" + k);
                w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                w.Close();
                k++;
                index++;
            }
            else
            {
                if (PQ.Peek().free_space >= BaseOperations.Audio_files[i].total_in_sec) // O(n)
                {
                    Folder temp = new Folder();
                    temp = PQ.Peek();
                    PQ.Dequeue(); // O(1)
                    temp.hours      += BaseOperations.Audio_files[i].hours;
                    temp.min        += BaseOperations.Audio_files[i].min;
                    temp.sec        += BaseOperations.Audio_files[i].sec;
                    temp.free_space -= BaseOperations.Audio_files[i].total_in_sec;
                    if (temp.free_space != 0)
                    {
                        PQ.Enqueue(temp); // O(nlogn)
                    }
                    // test = true;

                    path       += @"\f" + temp.index;
                    source     += @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                    destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                    System.IO.File.Copy(source, destination);
                    FileName += @"\f" + temp.index + "_MetaData.txt";
                    System.IO.FileStream F = new FileStream(FileName, FileMode.Append);
                    StreamWriter         w = new StreamWriter(F);
                    w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                    w.Close();
                }
                else
                {
                    path += @"\f" + k;
                    DirectoryInfo di = Directory.CreateDirectory(path);
                    Temp_folder.index       = k;
                    Temp_folder.hours       = BaseOperations.Audio_files[i].hours;
                    Temp_folder.min         = BaseOperations.Audio_files[i].min;
                    Temp_folder.sec         = BaseOperations.Audio_files[i].sec;
                    Temp_folder.free_space  = BaseOperations.max_size;
                    Temp_folder.free_space -= BaseOperations.Audio_files[i].total_in_sec;
                    BaseOperations.Audio_Folders.Add(Temp_folder);
                    PQ.Enqueue(Temp_folder);
                    source     += @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                    destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                    System.IO.File.Copy(source, destination);
                    FileName += @"\f" + k + "_MetaData" + ".txt";
                    System.IO.FileStream F = new FileStream(FileName, FileMode.Create);
                    StreamWriter         w = new StreamWriter(F);
                    w.WriteLine("f" + k);
                    w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                    w.Close();
                    k++;
                }
            }
        }
        int no = 0;

        FileName = Destination + @"\f" + (no + 1) + "_MetaData.txt";
        for (; no < k - 1; no++) // O(n)
        {
            FileName = @"c:\Output\[1] FirstfitDecreasing\f" + (no + 1) + "_MetaData.txt";
            System.IO.FileStream F = new FileStream(FileName, FileMode.Append);
            StreamWriter         w = new StreamWriter(F);
            w.WriteLine(BaseOperations.Audio_Folders[no].hours + ":" + BaseOperations.Audio_Folders[no].min + ":" + BaseOperations.Audio_Folders[no].sec);
            w.Close();
        }
    }
Beispiel #13
0
 public EvaluationResult Evaluate(EvaluationState state, ReadOnlyList <IEvaluate> args, ReadOnlyList <Object> data)
 {
     return(BaseOperations.BitNot(args[0].Evaluate(state)));
 }
Beispiel #14
0
        //-->>>>> ***** Receive Request From Client [  Connect  ] *****
        public void Connect(string userName)
        {
            var    id        = Context.ConnectionId;
            string userGroup = "";

            //Manage Hub Class
            //if freeflag==0 ==> Busy
            //if freeflag==1 ==> Free

            //if tpflag==0 ==> User
            //if tpflag==1 ==> Admin
            if (userName.Contains("temporary"))
            {
                //now we encounter ordinary user which needs userGroup and at this step, system assigns the first of free Admin among UsersList
                var strg = UsersList.Where(d => d.freeflag == "1" && d.tpflag == "1").FirstOrDefault();
                //var strg = (from s in UsersList where (s.tpflag == "1") && (s.freeflag == "1") select s).First();
                if (strg == null)
                {
                    string msg = "All Administrators are busy, please be patient and try again";
                    //***** Return to Client *****
                    Clients.Caller.NoExistAdmin();
                }
                else
                {
                    userGroup = strg.UserGroup;

                    //Admin becomes busy so we assign zero to freeflag which is shown admin is busy
                    strg.freeflag = "0";

                    //now add USER to UsersList
                    while (UsersList.Where(d => d.UserID == userName).Any())
                    {
                        var randomId = new Random().Next(1, 100);
                        userName = "******" + randomId.ToString() + "@temporary.com";
                    }
                    UsersList.Add(new UserInfo {
                        ConnectionId = id, UserID = userName, UserName = userName, UserGroup = userGroup, freeflag = "0", tpflag = "0",
                    });

                    //whether it is Admin or User now both of them has userGroup and I Join this user or admin to specific group
                    Groups.Add(Context.ConnectionId, userGroup);
                    Clients.Caller.onConnected(id, userName, userName, userGroup);
                }
            }
            else
            {
                #region local user
                using (var ctx = new BaseOperations())
                {
                    var userInfo = ctx.Get <ApplicationUser>(d => d.Email == userName).Include(d => d.Roles).FirstOrDefault();
                    try
                    {
                        //You can check if user or admin did not login before by below line which is an if condition
                        //if (UsersList.Count(x => x.ConnectionId == id) == 0)
                        //Here you check if there is no userGroup which is same DepID --> this is User otherwise this is Admin
                        //userGroup = DepID
                        var roles = userInfo.Roles.ToList();
                        if (!roles.Any(d => d.RoleId == "onlineChatAdmin"))
                        {
                            //now we encounter ordinary user which needs userGroup and at this step, system assigns the first of free Admin among UsersList
                            var strg = (from s in UsersList where (s.tpflag == "1") && (s.freeflag == "1") select s).First();
                            userGroup = strg.UserGroup;

                            //Admin becomes busy so we assign zero to freeflag which is shown admin is busy
                            strg.freeflag = "0";

                            //now add USER to UsersList
                            UsersList.Add(new UserInfo {
                                ConnectionId = id, UserID = userInfo.Id, UserName = userName, UserGroup = userGroup, freeflag = "0", tpflag = "0",
                            });
                            //whether it is Admin or User now both of them has userGroup and I Join this user or admin to specific group
                            Groups.Add(Context.ConnectionId, userGroup);
                            Clients.Caller.onConnected(id, userName, userInfo.Id, userGroup);
                        }
                        else
                        {
                            //If user has admin code so admin code is same userGroup
                            //now add ADMIN to UsersList
                            UsersList.Add(new UserInfo {
                                ConnectionId = id, AdminID = userInfo.Id, UserName = userName, UserGroup = userInfo.Id, freeflag = "1", tpflag = "1"
                            });
                            //whether it is Admin or User now both of them has userGroup and I Join this user or admin to specific group
                            Groups.Add(Context.ConnectionId, userInfo.Id);
                            Clients.Caller.onConnected(id, userName, userInfo.Id, userInfo.Id);
                        }
                    }
                    catch
                    {
                        string msg = "All Administrators are busy, please be patient and try again";
                        //***** Return to Client *****
                        Clients.Caller.NoExistAdmin();
                    }
                }
                #endregion
            }
        }
Beispiel #15
0
        public decimal Div([FromBody] OperationModel operationModel)
        {
            var operation = new BaseOperations();

            return(operation.Division(operationModel.ValueA, operationModel.ValueB));
        }
Beispiel #16
0
 public EvaluationResult Evaluate(EvaluationState state, ReadOnlyList <IEvaluate> args, ReadOnlyList <Object> data)
 {
     return(BaseOperations.GreaterEquals(args[0].Evaluate(state), args[1].Evaluate(state)));
 }
    /// <summary>
    /// The Complixty of Frist Fit is  O(N^2)
    /// </summary>

    static public void First_fit(string Source, string Destination)
    {
        /// Initlaize the Prameters
        BaseOperations.Initlaize("AudiosInfo.txt", "readme.txt");
        /// Sorting the Files
        BaseOperations.SortInDecreasing();  //O(NlogN)
        string path = Destination;

        // Adding the Frist file
        if (!Directory.Exists(path))
        {
            DirectoryInfo di = Directory.CreateDirectory(path);
        }
        int    k           = 1;
        string FileName    = path;
        string source      = Source;
        string destination = "";

        for (int i = 0; i < BaseOperations.num_of_rec; i++) //O(N)
        {
            path        = Destination;
            source      = Source;
            destination = "";
            FileName    = path;
            int    directoryCount = System.IO.Directory.GetDirectories(path).Length;
            long   max            = 0;
            int    index          = 0;
            bool   test           = true;
            Folder Temp_folder    = new Folder();
            if (directoryCount == 0)
            {
                /// Creating the Frist folder
                path += @"\f" + k;
                DirectoryInfo di = Directory.CreateDirectory(path);

                Temp_folder.hours       = BaseOperations.Audio_files[i].hours;
                Temp_folder.min         = BaseOperations.Audio_files[i].min;
                Temp_folder.sec         = BaseOperations.Audio_files[i].sec;
                Temp_folder.free_space  = BaseOperations.max_size;
                Temp_folder.free_space -= BaseOperations.Audio_files[i].total_in_sec;
                // Satr el Folder El 5ayaly
                BaseOperations.Audio_Folders.Add(Temp_folder);
                // Real Transfering
                source     += @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                // Copy mn El 5yaly to Real Folder
                System.IO.File.Copy(source, destination);
                /// Adding Data to Meta Data  Files
                FileName += @"\f" + k + "_MetaData.txt";
                System.IO.FileStream F = new FileStream(FileName, FileMode.Create);
                StreamWriter         w = new StreamWriter(F);
                w.WriteLine("f" + k);
                w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                w.Close();
                k++;
            }
            else
            {
                for (int j = 0; j < directoryCount; j++)  //O(N^2)
                {
                    if (BaseOperations.Audio_Folders[j].free_space >= BaseOperations.Audio_files[i].total_in_sec)
                    {
                        // Zy Ely Foo2
                        BaseOperations.Audio_Folders[j].hours      += BaseOperations.Audio_files[i].hours;
                        BaseOperations.Audio_Folders[j].min        += BaseOperations.Audio_files[i].min;
                        BaseOperations.Audio_Folders[j].sec        += BaseOperations.Audio_files[i].sec;
                        BaseOperations.Audio_Folders[j].free_space -= BaseOperations.Audio_files[i].total_in_sec;
                        path       += @"\f" + (j + 1);
                        source     += @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                        destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                        System.IO.File.Copy(source, destination);
                        FileName += @"\f" + (j + 1) + "_MetaData.txt";
                        // Adding THe Remaning files in Folder
                        System.IO.FileStream F = new FileStream(FileName, FileMode.Append);
                        StreamWriter         w = new StreamWriter(F);
                        w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                        w.Close();
                        test = false;
                        break;
                    }
                }
                if (test)
                {
                    // Adding in A new Folder w Zy El Frist Condition
                    path        = Destination;
                    source      = Source;
                    destination = "";
                    FileName    = path;
                    path       += @"\f" + k;
                    DirectoryInfo di = Directory.CreateDirectory(path);
                    Temp_folder.hours       = BaseOperations.Audio_files[i].hours;
                    Temp_folder.min         = BaseOperations.Audio_files[i].min;
                    Temp_folder.sec         = BaseOperations.Audio_files[i].sec;
                    Temp_folder.free_space  = BaseOperations.max_size;
                    Temp_folder.free_space -= BaseOperations.Audio_files[i].total_in_sec;
                    BaseOperations.Audio_Folders.Add(Temp_folder);
                    source     += @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                    destination = path + @"\" + (BaseOperations.Audio_files[i].index) + ".AMR";
                    System.IO.File.Copy(source, destination);
                    FileName += @"\f" + k + "_MetaData" + ".txt";
                    System.IO.FileStream F = new FileStream(FileName, FileMode.Create);
                    StreamWriter         w = new StreamWriter(F);
                    w.WriteLine("f" + k);
                    w.WriteLine(BaseOperations.Audio_files[i].name + " " + BaseOperations.Audio_files[i].hours + ":" + BaseOperations.Audio_files[i].min + ":" + BaseOperations.Audio_files[i].sec);
                    w.Close();
                    k++;
                }
            }
        }
        int no = 0;

        FileName = Destination + @"\f" + (no + 1) + "_MetaData.txt";
        for (; no < k - 1; no++) //O(N)
        {
            FileName = @"c:\Output\[1] FirstfitDecreasing\f" + (no + 1) + "_MetaData.txt";
            System.IO.FileStream F = new FileStream(FileName, FileMode.Append);
            StreamWriter         w = new StreamWriter(F);
            w.WriteLine(BaseOperations.Audio_Folders[no].hours + ":" + BaseOperations.Audio_Folders[no].min + ":" + BaseOperations.Audio_Folders[no].sec);
            w.Close();
        }
    }