public Context(BaseDeclares declares, BaseOperations operations, BaseSetters setters, BaseConstants constant) { Declares = declares; Operations = operations; Setters = setters; Constant = constant; }
/// <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); } } }
/// <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); }
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)); }
/// <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); }
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(); } }
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 /// /// }
public decimal Mult([FromBody] OperationModel operationModel) { var operation = new BaseOperations(); return(operation.Multiplication(operationModel.ValueA, operationModel.ValueB)); }
public decimal Sub([FromBody] OperationModel operationModel) { var operation = new BaseOperations(); return(operation.Subtraction(operationModel.ValueA, operationModel.ValueB)); }
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; } }
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(); } }
public EvaluationResult Evaluate(EvaluationState state, ReadOnlyList <IEvaluate> args, ReadOnlyList <Object> data) { return(BaseOperations.BitNot(args[0].Evaluate(state))); }
//-->>>>> ***** 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 } }
public decimal Div([FromBody] OperationModel operationModel) { var operation = new BaseOperations(); return(operation.Division(operationModel.ValueA, operationModel.ValueB)); }
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(); } }