public void ReplaceModel(string filename, string itemToReplace) { var definition = GetBytesFromFile(filename); var visibleName = Path.GetFileName(itemToReplace); var datasource = RsFacade.GetReportDatasources(itemToReplace); var dependantItems = RsFacade.ListDependantItems(itemToReplace); RsFacade.DeleteItem(itemToReplace); var destinationFolder = Path.GetDirectoryName(itemToReplace) .Replace('\\', '/'); RsFacade.CreateModel(visibleName, destinationFolder, definition, null); if (datasource != null && datasource.Count > 0) { RsFacade.SetItemDataSources(itemToReplace, datasource[0]); } UpdateDatasourceForDependantItems(dependantItems, itemToReplace); toolStripStatusLabel.Text = String.Format("Uploaded item {0}", Path.GetFileName(filename)); Application.DoEvents(); }