Насколько я знаю, не существует магического метода, который позволял бы вам заменять расписание. Если вы хотите иметь возможность использовать метод QueueUpdateTimesheet от имени других пользователей, вам придется немного взломать свой DataSet.
Помните, что вам необходимо выполнить предварительное условие для олицетворения пользователя (http://msdn.microsoft.com/en-us/library/aa974413.aspx). Как только все будет готово, вы можете продолжить;)
Прежде всего, получите ваше расписаниеСтрока:
Proxy.TimesheetListDataSet.TimesheetsRow tsFound = null;
foreach (Proxy.TimesheetListDataSet.TimesheetsRow ts in ds.Timesheets)
{
if (ts.WPRD_START_DATE <= day.Date && ts.WPRD_FINISH_DATE > day.Date)
{
tsFound = ts;
break;
}
}
Затем получите данные расписания. Набор:
Proxy.TimesheetDataSet tds = timesheetSvc.ReadTimesheet(tsFound.TS_UID);
Затем выполните это, чтобы включить суррогатное:
if (Boolean.Parse(tds.Headers.Rows[0]["TS_IS_CONTROLLED_BY_OWNER"].ToString()) == true)
{
tds.Headers.Rows[0]["TS_IS_CONTROLLED_BY_OWNER"] = false;
tds.Headers.Rows[0]["TS_CREATOR_RES_UID"] = "[SUPER USER GUID]"
}
Наконец-то нажмите обновленные данныеНабор:
timesheetSvc.QueueUpdateTimesheet(Guid.NewGuid(), tsFound.TS_UID, updatedTimesheetDataSet);
Надеюсь, это поможет!
Прощай