internal override string Execute(string[] parameters) { int userID; int slideID; string url; string trimmedDisplayDuration; float displayDuration; if (!Helper.TryGetUserID(_session, out userID)) { return(String.Empty); } int parametersLength = parameters.Length; if (parametersLength < 5) { return(ErrorWrapper.SendError("Command parameters missing.")); } if (!int.TryParse(parameters[1], out slideID)) { return(ErrorWrapper.SendError("Invalid Slide ID")); } url = parameters[2].Trim().Replace("{a001}", ",,"); trimmedDisplayDuration = parameters[3].Trim(); if (string.IsNullOrEmpty(url)) { url = null; } if (!string.IsNullOrEmpty(trimmedDisplayDuration) && trimmedDisplayDuration != Resource.UserDefinedDisplayDuration) { if (!float.TryParse(trimmedDisplayDuration, out displayDuration)) { return("-1"); } if (displayDuration < _minDisplayDuration || displayDuration > _maxDisplayDuration) { return("-3"); // display duration out of bounds } } else { displayDuration = -1F; } string[] startEndDateTimes = null; if (!Validate(parametersLength, parameters, ref startEndDateTimes)) { return("-2"); } BLClient client = null; try { client = new BLClient(); client.EditChannelSlideProperties(userID, slideID, url, displayDuration, parameters[4], startEndDateTimes); } catch (Exception ex) { return(ErrorWrapper.SendError(ex.ToString())); } finally { client.Dispose(); } return("1"); }