private bool GetProfileName() { Item.Outputs[0].Profile = DisplayProfile.GetProfileName(SelectedProfile); if (string.IsNullOrEmpty(Item.Outputs[0].Profile)) { Description = "プロファイルを選択してください"; return(false); } return(true); }
public void ChangeProfile(IEnumerable selectedItems, object profile) { var profileName = DisplayProfile.GetProfileName(profile); foreach (var item in selectedItems.OfType <DisplayQueueItem>().ToArray()) { var file = item.Model; Model.Server?.ChangeItem(new ChangeItemData() { ItemId = file.Id, ChangeType = ChangeItemType.Profile, Profile = profileName }); } }
public async void MakeBatchFile() { string cur = Directory.GetCurrentDirectory(); string exe = Path.GetDirectoryName(GetType().Assembly.Location); string dst = Model.MakeScriptData.OutDir?.TrimEnd(Path.DirectorySeparatorChar); string prof = DisplayProfile.GetProfileName(Model.MakeScriptData.SelectedProfile); string bat = Model.MakeScriptData.Model.AddQueueBat; string nas = null; string ip = "localhost"; int port = Model.ServerPort; string subnet = null; string mac = null; bool direct = Model.MakeScriptData.IsDirect; if (prof == null) { Description = "プロファイルを選択してください"; return; } if (string.IsNullOrEmpty(dst)) { Description = "出力先が設定されていません"; return; } if (Directory.Exists(dst) == false) { Description = "出力先ディレクトリにアクセスできません"; return; } if (Model.MakeScriptData.IsNasEnabled) { if (string.IsNullOrEmpty(Model.MakeScriptData.NasDir)) { Description = "NAS保存先を指定してください。"; return; } nas = Model.MakeScriptData.NasDir.TrimEnd(Path.DirectorySeparatorChar);; } if (IsRemoteClient) { ip = Model.ServerIP; if (Model.MakeScriptData.IsWakeOnLan) { var localIP = Model.LocalIP; if (localIP == null) { Description = "IPアドレス取得に失敗"; return; } if (localIP.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork) { Description = "IPv4以外の接続には対応していません"; return; } var subnetaddr = ServerSupport.GetSubnetMask(((IPEndPoint)localIP).Address); if (subnetaddr == null) { Description = "サブネットマスク取得に失敗"; return; } subnet = subnetaddr.ToString(); var macbytes = Model.MacAddress; if (macbytes == null) { Description = "MACアドレス取得に失敗"; return; } mac = string.Join(":", macbytes.Select(s => s.ToString("X"))); } } Description = ""; var sb = new StringBuilder(); if (direct) { sb.Append("rem _EDCBX_DIRECT_\r\n"); } sb.AppendFormat("\"{0}\\AmatsukazeAddTask.exe\"", exe) .AppendFormat(" -r \"{0}\"", cur) .AppendFormat(" -f \"{0}FilePath{0}\" -ip \"{1}\"", direct ? "%" : "$", ip) .AppendFormat(" -p {0}", port) .AppendFormat(" -o \"{0}\"", dst) .AppendFormat(" -s \"{0}\"", prof) .AppendFormat(" --priority {0}", Model.MakeScriptData.Priority); if (nas != null) { sb.AppendFormat(" -d \"{0}\"", nas); } if (mac != null) { sb.AppendFormat(" --subnet \"{0}\"", subnet) .AppendFormat(" --mac \"{0}\"", mac); } if (Model.MakeScriptData.MoveAfter == false) { sb.Append(" --no-move"); } if (Model.MakeScriptData.ClearSucceeded) { sb.Append(" --clear-succeeded"); } if (Model.MakeScriptData.WithRelated) { sb.Append(" --with-related"); } if (!string.IsNullOrEmpty(bat)) { sb.AppendFormat(" -b \"{0}\"", bat); } var saveFileDialog = new SaveFileDialog(); saveFileDialog.FilterIndex = 1; saveFileDialog.Filter = "バッチファイル(.bat)|*.bat|All Files (*.*)|*.*"; bool?result = saveFileDialog.ShowDialog(); if (result != true) { return; } try { File.WriteAllText(saveFileDialog.FileName, sb.ToString(), Encoding.Default); } catch (Exception e) { Description = "バッチファイル作成に失敗: " + e.Message; return; } var resvm = new MakeBatchResultViewModel() { Path = saveFileDialog.FileName }; await Messenger.RaiseAsync(new TransitionMessage( typeof(Views.MakeBatchResultWindow), resvm, TransitionMode.Modal, "Key")); await Model.SendMakeScriptData(); }