}\r
],\r
"targets": [\r
- {\r
- "label": "Stúdióba küldés",\r
- "processor": "FTPTargetProcessor",\r
- "outputFormat": "%ID%",\r
- "tag": "Betöltés",\r
- "nexioServer": true,\r
- "killDateDays": 7,\r
- "remote": {\r
- "address": "ftp://10.10.1.56:2098",\r
- "userName": "administrator",\r
- "password": "+QtkeQdCTiOvZOgK/kUND4pO4/D+//r7ZIyluwMMdiqMEgO8iJErAG10ooWhPfiljQeXrdeyMzo7gWEZtcWpNSomGeDIbdMyQwtpqmMo1VEM3A27ZfzigY09YD46ECRh",\r
- "timeout": 1000\r
- }\r
- },\r
{\r
"label": "Hír nyersanyag betöltés",\r
"processor": "FTPTargetProcessor",\r
"timeout": 1000\r
}\r
},\r
+ {\r
+ "label": "Stúdióba küldés",\r
+ "processor": "FTPTargetProcessor",\r
+ "outputFormat": "%ID%",\r
+ "tag": "Betöltés",\r
+ "nexioServer": true,\r
+ "killDateDays": 7,\r
+ "agency": "MAESTRO-EDITOR",\r
+ "reference": "Hír nyersanyag betöltés",\r
+ "remote": {\r
+ "address": "ftp://10.10.1.56:2098",\r
+ "userName": "administrator",\r
+ "password": "+QtkeQdCTiOvZOgK/kUND4pO4/D+//r7ZIyluwMMdiqMEgO8iJErAG10ooWhPfiljQeXrdeyMzo7gWEZtcWpNSomGeDIbdMyQwtpqmMo1VEM3A27ZfzigY09YD46ECRh",\r
+ "timeout": 1000\r
+ }\r
+ },\r
{\r
"label": "Lebonyba küldés",\r
"processor": "FTPTargetProcessor",\r
"targets": [\r
{\r
"label": "Hír nyersanyag betöltés",\r
- "processor": "UNCTargetProcessor",\r
+ "processor": "FTPTargetProcessor",\r
"outputFormat": "%ID%-%SOURCENAME%",\r
"tag": "Betöltés",\r
"createSubFolder": true,\r
"killDateDays": 7,\r
+ "useMetadata": false,\r
"remote": {\r
- "address": "file://10.10.1.100/BRAAVOS/OCTOPUS",\r
+ "address": "ftp://10.10.1.100/OCTOPUS",\r
+ "userName": "mediacube",\r
+ "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
+ "timeout": 1000\r
+ }\r
+ },\r
+ {\r
+ "label": "Magazin nyersanyag betöltés",\r
+ "processor": "FTPTargetProcessor",\r
+ "outputFormat": "%ID%-%SOURCENAME%",\r
+ "tag": "Betöltés",\r
+ "createSubFolder": true,\r
+ "killDateDays": 7,\r
+ "useMetadata": false,\r
+ "remote": {\r
+ "address": "ftp://10.10.1.100/PLAYOUT_NLE",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
"outputFormat": "%ID%",\r
"tag": "Betöltés",\r
"nexioServer": true,\r
- "agency": "NLE UPLOAD",\r
"killDateDays": 7,\r
+ "agency": "MAESTRO-NLE",\r
"reference": "Hír nyersanyag betöltés",\r
"remote": {\r
"address": "ftp://10.10.1.56:2098",\r
},\r
{\r
"label": "Lebonyba küldés",\r
- "processor": "UNCTargetProcessor",\r
+ "processor": "FTPTargetProcessor",\r
"outputFormat": "%ID%",\r
"tag": "Betöltés",\r
"killDateDays": 7,\r
"remote": {\r
- "address": "file://10.10.1.100/BRAAVOS/PLAYOUT_CHECK",\r
+ "address": "ftp://10.10.1.100/PLAYOUT_CHECK",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
},\r
{\r
"label": "Archiválás",\r
- "processor": "UNCTargetProcessor",\r
+ "processor": "FTPTargetProcessor",\r
"outputFormat": "%ID%",\r
"tag": "Archiválás",\r
"useMetadata": true,\r
"remote": {\r
- "address": "file://10.10.1.100/BRAAVOS/ARCHIVE",\r
+ "address": "ftp://10.10.1.100/ARCHIVE",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
"targets": [\r
{\r
"label": "Adáskész",\r
- "processor": "UNCTargetProcessor",\r
+ "processor": "FXPTargetProcessor",\r
"outputFormat": "%ID%",\r
"saveSegments": true,\r
"tag": "Adáskész",\r
- "reference": "Archiválás",\r
"remote": {\r
- "address": "file://10.10.1.100/BRAAVOS/PLAYOUT/IceGateway",\r
+ "address": "ftp://10.10.1.100/PLAYOUT/IceGateway",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
},\r
{\r
"label": "Újravágás",\r
- "processor": "UNCTargetProcessor",\r
- "outputFormat": "%ID%",\r
- "tag": "Újravágás",\r
- "remote": {\r
- "address": "file://10.10.1.100/BRAAVOS/PLAYOUT_NLE",\r
- "userName": "mediacube",\r
- "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
- "timeout": 1000\r
- },\r
- "sendSEmailOnSuccess": true,\r
- "successEmailRecipient": "vasary@elgekko.net",\r
- "successEmailPattern": "A %TARGETNAME% újravágása szükséges."\r
- },\r
- {\r
- "label": "Újravágás FXP",\r
"processor": "FXPTargetProcessor",\r
"outputFormat": "%ID%",\r
- "tag": "Újravágás FXP",\r
+ "tag": "Újravágás",\r
+ "createSubFolder": true,\r
"remote": {\r
"address": "ftp://10.10.1.100/PLAYOUT_NLE",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
},\r
- "sendSEmailOnSuccess": false,\r
+ "sendSEmailOnSuccess": true,\r
"successEmailRecipient": "vasary@elgekko.net",\r
"successEmailPattern": "A %TARGETNAME% újravágása szükséges."\r
},\r
{\r
"label": "Archiválás",\r
- "processor": "UNCTargetProcessor",\r
+ "processor": "FXPTargetProcessor",\r
"outputFormat": "%ID%",\r
"tag": "Archiválás",\r
"createMetadata": true,\r
"remote": {\r
- "address": "file://10.10.1.100/BRAAVOS/ARCHIVE",\r
+ "address": "ftp://10.10.1.100/ARCHIVE",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
private MetadataInfo selectedMetadata;\r
private List<Segment> segments;\r
private MediaCubeApi mediaCubeApi;\r
- private ArchiveMetadata archiveMetadatamodel;\r
+ private ArchiveMetadata archiveMetadata;\r
private BindingList<MovieSegment> movieSegments;\r
\r
public MetadataInfo SelectedMetadata {\r
}\r
\r
private void ModifyArchiveMetadataClick(object sender, EventArgs e) {\r
- ArchiveMetadataForm form = new ArchiveMetadataForm(archiveMetadatamodel);\r
+ ArchiveMetadataForm form = new ArchiveMetadataForm(archiveMetadata);\r
form.ShowDialog();\r
}\r
\r
- private IDTypes GetTypeOfSelectedMetadata() {\r
+ private IDTypes GetSelectedMetadataType() {\r
IDTypes result = IDTypes.None;\r
if (String.IsNullOrEmpty(selectedMetadata.ID))\r
return IDTypes.None;\r
}\r
\r
private void ConvertMovieSegmentsToSegments(BindingList<MovieSegment> movieSegments) {\r
- segments.Clear();\r
+ segments = new List<Segment>();\r
foreach (MovieSegment actual in movieSegments) {\r
Segment actualSegment = segmentConverter.ConvertToSegment(actual);\r
segments.Add(actualSegment);\r
private void OnChecked(CheckBox checkBox, Target target) {\r
if (checkBox.Checked) {\r
List<ITargetProcessor> processors = CreateProcessors(target, checkBox);\r
- currentProcessors.Add(checkBox, processors);\r
+ if (processors != null && processors.Count > 0) {\r
+ if (currentProcessors.ContainsKey(checkBox))\r
+ currentProcessors[checkBox].AddRange(processors);\r
+ else\r
+ currentProcessors[checkBox] = processors;\r
+ }\r
} else {\r
HandleCheckBoxReferences(target.Reference, false);\r
currentProcessors.Remove(checkBox);\r
continue;\r
if (!EnsureSegments(target)) {\r
checkBox.Checked = false;\r
- continue;\r
+ result = null; \r
+ break;\r
}\r
if (!EnsureMetadata(target)) {\r
checkBox.Checked = false;\r
- continue;\r
+ result = null;\r
+ break;\r
}\r
TargetProcessorParameter processorParameter = CreateProcessorParameter(target, sourceItem);\r
ITargetProcessor processor = CreateProcessor(target, processorParameter);\r
\r
private bool EnsureSegments(Target target) {\r
if (target.SaveSegments && segments == null) {\r
- segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
+ if (selectedMetadata?.VariantID != null && selectedMetadata?.VariantID != 0)\r
+ segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
if (segments == null) {\r
- MessageBox.Show("A {0} folyamat nem futtatható szegmens adatok nélkül.");\r
+ MessageBox.Show(String.Format("A {0} folyamat nem futtatható szegmens adatok nélkül.", target.Label));\r
return false;\r
}\r
}\r
}\r
\r
private bool EnsureMetadata(Target target) {\r
- if (target.CreateMetadata && (archiveMetadatamodel == null || !archiveMetadatamodel.IsFilled)) {\r
- segments = trafficIDSelector.trafficAPI.GetSegments(selectedMetadata.VariantID);\r
- if (segments == null) {\r
- MessageBox.Show("A {0} folyamat nem futtatható kísérő adatok nélkül.");\r
+ if (target.CreateMetadata && (archiveMetadata == null || !archiveMetadata.IsFilled)) {\r
+ archiveMetadata = GetArchiveMetadata();\r
+ if (archiveMetadata == null) {\r
+ MessageBox.Show(String.Format("A {0} folyamat nem futtatható kísérő adatok nélkül.", target.Label));\r
return false;\r
}\r
}\r
\r
private TargetProcessorParameter CreateProcessorParameter(Target target, ISourceItem sourceItem) {\r
return new TargetProcessorParameter() {\r
- ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadatamodel),\r
+ ArchiveMetadata = ArchiveMetadata.DeepClone(archiveMetadata),\r
Client = trafficIDSelector.trafficAPI,\r
- ID = selectedMetadata == null ? textSelectedMetadata.Text : selectedMetadata.ID,\r
+ ID = textSelectedMetadata.Text,\r
InputFileName = sourceItem.Name,\r
MediaCubeApi = mediaCubeApi,\r
Segments = segments == null ? null : new List<Segment>(segments),\r
if (actualCheckbox != null && actualCheckbox.Text.Equals(reference)) {\r
if (check)\r
actualCheckbox.Checked = check;\r
- else\r
- currentProcessors.Remove(actualCheckbox);\r
+\r
actualCheckbox.Enabled = !check;\r
}\r
}\r
private void EnableArchiveMetadataButtonAndCreateMetadataModel() {\r
ctxiModifyArchiveMetadata.Enabled = selectedMetadata != null;\r
if (ctxiModifyArchiveMetadata.Enabled) {\r
- archiveMetadatamodel = new ArchiveMetadata();\r
- Cursor.Current = Cursors.WaitCursor;\r
- IDTypes idType = GetTypeOfSelectedMetadata();\r
- if (idType == IDTypes.OctopusID)\r
- GetOctopusMetadata(archiveMetadatamodel);\r
- else //if (idType == IDTypes.TrafficID)\r
- GetTrafficMetadata(archiveMetadatamodel);\r
+ archiveMetadata = GetArchiveMetadata();\r
} else\r
- archiveMetadatamodel = null;\r
+ archiveMetadata = null;\r
+ }\r
+\r
+ private ArchiveMetadata GetArchiveMetadata() {\r
+ ArchiveMetadata result = null;\r
+ Cursor.Current = Cursors.WaitCursor;\r
+ IDTypes idType = GetSelectedMetadataType();\r
+ if (idType == IDTypes.OctopusID)\r
+ result = GetOctopusMetadata();\r
+ else //if (idType == IDTypes.TrafficID)\r
+ result = GetTrafficMetadata();\r
+ Cursor.Current = Cursors.Default;\r
+ return result;\r
}\r
\r
- private void GetTrafficMetadata(ArchiveMetadata model) {\r
+ private ArchiveMetadata GetTrafficMetadata() {\r
string id = selectedMetadata.ID;\r
- TrafficAPI api = trafficIDSelector.trafficAPI;\r
- List<ArchiveMatadataWrapper> result = null;\r
if (id == null)\r
- return;\r
+ return null;\r
+ TrafficAPI api = trafficIDSelector.trafficAPI;\r
+ List<ArchiveMatadataWrapper> trafficResult = null;\r
if (id.StartsWith("M"))\r
- result = api.GetBroadcastArchiveMetadata(id);\r
+ trafficResult = api.GetBroadcastArchiveMetadata(id);\r
else if (id.StartsWith("P"))\r
- result = api.GetPromotionalArchiveMetadata(id);\r
+ trafficResult = api.GetPromotionalArchiveMetadata(id);\r
else if (id.StartsWith("R"))\r
- result = api.GetAdvertisementArchiveMetadata(id);\r
- if (result == null)\r
- return;\r
- ArchiveMatadataWrapper actualResult = result[0];\r
- model.itemHouseId = actualResult.ProgID;\r
- model.itemTitle = actualResult.ProgTitle;\r
- model.itemDescription = actualResult.ProgDescription;\r
- model.mediaHouseId = actualResult.EpisodeID;\r
- model.mediaTitle = !String.IsNullOrEmpty(actualResult.EpisodeTitle) ? actualResult.EpisodeTitle : actualResult.ProgTitle;\r
- model.mediaDescription = actualResult.EpisodeDescription;\r
+ trafficResult = api.GetAdvertisementArchiveMetadata(id);\r
+ if (trafficResult == null)\r
+ return null;\r
+ ArchiveMetadata result = new ArchiveMetadata();\r
+ ArchiveMatadataWrapper actualResult = trafficResult[0];\r
+ result.itemHouseId = actualResult.ProgID;\r
+ result.itemTitle = actualResult.ProgTitle;\r
+ result.itemDescription = actualResult.ProgDescription;\r
+ result.mediaHouseId = actualResult.EpisodeID;\r
+ result.mediaTitle = !String.IsNullOrEmpty(actualResult.EpisodeTitle) ? actualResult.EpisodeTitle : actualResult.ProgTitle;\r
+ result.mediaDescription = actualResult.EpisodeDescription;\r
+ return result;\r
}\r
\r
- private void GetOctopusMetadata(ArchiveMetadata model) {\r
+ private ArchiveMetadata GetOctopusMetadata() {\r
+ ArchiveMetadata result = new ArchiveMetadata();\r
string id = selectedMetadata.ID;\r
OctopusAPI api = octopusIDSelector.GetClient();\r
IEnumerable<Story> storyEnum = api.GetStoriesById(id);\r
if (storyEnum != null)\r
- FillModelFromStories(model, storyEnum.ToList(), api);\r
+ FillModelFromStories(result, storyEnum.ToList(), api);\r
else {\r
IEnumerable<Story> storiesEnum = api.GetStoriesByPlaceHolderId(id);\r
- if (storiesEnum == null)\r
- return;\r
- List<Story> stories = storiesEnum.ToList();\r
- FillModelFromStories(model, stories, api);\r
+ if (storiesEnum != null) {\r
+ List<Story> stories = storiesEnum.ToList();\r
+ FillModelFromStories(result, stories, api);\r
+ }\r
}\r
+ return result;\r
}\r
\r
private void FillModelFromStories(ArchiveMetadata model, List<Story> stories, OctopusAPI api) {\r
\r
protected override void UploadFile() {\r
using (FileStream istream = File.OpenRead(Input)) {\r
- using (Stream ostream = targetFTP.OpenWrite(Output)) {\r
+ using (Stream ostream = targetFTP.OpenWrite(OutputName)) {\r
try {\r
CopyStream(istream, inputFile.Length, ostream);\r
}\r
}\r
}\r
FtpReply reply = targetFTP.GetReply();\r
- if (reply.Success && "226".Equals(reply.Code)) {\r
- if (!FileExists(Output))\r
- throw new Exception("Feltöltési hiba.");\r
+ if ((reply.Success && "226".Equals(reply.Code) && !FileExists(OutputName)) || \r
+ !reply.Success || \r
+ (reply.Success && !"226".Equals(reply.Code))) {\r
+ throw new Exception("Feltöltési hiba.");\r
}\r
}\r
\r
if (!targetReplyTYPE.Success)\r
throw new Exception(targetReplyTYPE.ErrorMessage);\r
\r
+ string currentWorkingDir = targetFTP.GetWorkingDirectory();\r
+ logger.Debug("Current target working directory is {0}", currentWorkingDir);\r
FtpReply replySTOR = targetFTP.Execute("STOR " + OutputName);\r
if (!replySTOR.Success)\r
throw new Exception(replySTOR.ErrorMessage);\r
workingDir = DetermineWorkingDirectory(parameters.TargetConfig.Remote);\r
EnsureDirectoryExistence(workingDir);\r
OutputName = CreateOutputFileName();\r
+ OutputName = OutputName.ToUpper();\r
Output = "/".Equals(workingDir) ? OutputName : Path.Combine(workingDir, OutputName);\r
workFlowAction.source = Input;\r
workFlowAction.destination = Output;\r
\r
private void SendEmail(string to, string messagePattern) {\r
try {\r
- string message = messagePattern.Replace("%TARGETNAME%", Output);\r
+ string message = messagePattern.Replace("%TARGETNAME%", OutputName);\r
parameters.MediaCubeApi.Notify(to, messagePattern);\r
}\r
catch (Exception e) {\r
string fileName = String.Format(KILLDATE_FILE, OutputName, date.ToString("yyyyMMdd"));\r
logger.Debug("Creating KILLDATE status file {0}", fileName);\r
KillDatePath = Path.Combine(statusWorkDir, fileName);\r
- UploadContent(KillDatePath, new byte[] { });\r
+ UploadContent(fileName, new byte[] { });\r
KillDate = date;\r
}\r
\r