public void ProcessTheResultOfLastDataChangeActionResultCall(Guid InfoIDProcessed,
			RequiredUpdateFunction RequFunctions, ResultOfUpdateFunction Result)
			{
			switch (Result)
				{
				case ResultOfUpdateFunction.Correct:
					{
					break;
					}
				case ResultOfUpdateFunction.Cancel:
					{
					MessageBox.Show ("Der Vorgang wurde abgebrochen\r\nnichts wurde gespeichert");
					return;
					break;
					}
				case ResultOfUpdateFunction.Errornous:
					{
					MessageBox.Show ("Beim geforderten Vorgang entstand ein Fehler");
					return;
					break;
					}
				}
			DataModell.ActiveInformationen = null;
			ActiveInformationen = DataModell.ActiveInformationen;
			ActiveInformationenID = Guid.Empty;

			}
		private void CancelDelete_OnClick (object Sender, RoutedEventArgs E)
			{
			UpdateDataModellInstance.UpdateFunction = RequiredUpdateFunction.Cancel;
			RequestedUpdateFunction = RequiredUpdateFunction.Cancel;
			ProcessRequestedUpdateFunction(ResultOfUpdateFunction.Cancel);
			}
Exemple #3
0
		public String UpdateWorkDataSet(RequiredUpdateFunction RequiredFunction, ref CommonSearchClass SelectedEntry)
			{
			SelectedEntry = null;
			if (ActiveInformationen == null)
				{
				return String.Empty;
				}
			if ((RequiredFunction == RequiredUpdateFunction.Modify)
				|| (RequiredFunction == RequiredUpdateFunction.InsertNew))
				RemoveRemoveableInformationenAddOn(ActiveInformationen, WorkDataSet);
			if (RequiredFunction == RequiredUpdateFunction.Delete)
				DeleteDeleteableInformationen(ActiveInformationen, WorkDataSet);
			foreach (DataTable Table in WorkDataSet.Tables)
				{
				if (Table.TableName.Contains("Full"))
					Table.AcceptChanges();
				}
			DataSet ToChange = WorkDataSet.GetChanges();
#if DEBUG
			Basics.TraceDataSetChanges(WorkDataSet, ToChange);
#endif

			String ErrorMessages = String.Empty;
			if (ToChange != null)
				{
				foreach (DataTable Table in ToChange.Tables)
					{
					String IDName = "ID";
					if (Table.TableName == "Timings")
						IDName = "TimingsID";
					foreach (DataRow ChangedRow in Table.Rows)
						{
						if (ChangedRow.RowState == DataRowState.Deleted)
							continue;
						String ID = ChangedRow [IDName].ToString ();
						DataRow Row = WorkDataSet.Tables [Table.TableName]
							.Select (IDName + " = '" + ID + "'") [0];
						UInt64 LastUpdateToken = WMB.Basics.GetLastUpdateToken (Row);
						bool SetModifyRequested = (Row.RowState == DataRowState.Modified);
						bool SetAddRequested = ((Row.RowState == DataRowState.Added)
								|| ((LastUpdateToken < (UInt64)100000)
									&& (LastUpdateToken != (UInt64)0)));
						if ((Table.Columns.Contains ("ModifyTimeStamp"))
							&& (Row.RowState != DataRowState.Deleted))
							Row ["ModifyTimeStamp"] = DateTime.Now;
						if ((Table.Columns.Contains ("LastModifiedBy"))
							&& (Row.RowState != DataRowState.Deleted))
							Row ["LastModifiedBy"] 
								= WMB.WPMediaApplicationState.Instance.Properties ["UserName"].ToString ().ToUpper( );
						if ((SetAddRequested)
							&& (SetModifyRequested == false))
							{
							Row.AcceptChanges ();
							Row.SetAdded ();
							}
						else
							{

							}
						}
					}
				if ((WorkDataSet.Tables ["Informationen"].Rows.Count > 0)
				    && (WorkDataSet.Tables ["Informationen"].Rows [0].RowState != DataRowState.Deleted))
					{
					WorkDataSet.Tables["Informationen"].Rows[0]["ModifyTimeStamp"] = DateTime.Now;
					WorkDataSet.Tables["Informationen"].Rows[0]["LastModifiedBy"]
						= WMB.WPMediaApplicationState.Instance.Properties["UserName"].ToString().ToUpper();
					}
				ToChange = WorkDataSet.GetChanges();
				}
			if (ToChange != null)
				{
#if DEBUG
				Basics.TraceDataSetChanges(ToChange, ToChange);
#endif
				ErrorMessages = BasicAccess.AltErlaaInfoDataBase.SetCommonDataSet(ToChange);
				}
			if (String.IsNullOrEmpty(ErrorMessages))
				{
				WorkDataSet.AcceptChanges();
				ResetPendingModificationssCounter();
				RootDataClassLateDBHandler.ProcessCachedBlobCommands ();
				if (InformationAndInformationenAddOns != null)
					InformationAndInformationenAddOns.Clear();
				SelectedEntry = CommonSearchClassCacheInstance.RefreshWorkListEntry(ActiveInformationen.ID, RequiredFunction);
				return String.Empty;
				}
			throw new Exception ("Fehler bei UpdateWorkDataSet:\r\n" 
				+ ErrorMessages);
			return ErrorMessages;
			}
		private void DeleteEntry_OnClick(object Sender, RoutedEventArgs E)
			{
			UpdateDataModellInstance.UpdateFunction = RequiredUpdateFunction.Delete;
			RequestedUpdateFunction = RequiredUpdateFunction.Delete;
			ProcessRequestedUpdateFunction(ResultOfUpdateFunction.Correct);
			}
		private void StoreModified_OnClick(object Sender, RoutedEventArgs E)
			{
			UpdateDataModellInstance.UpdateFunction = RequiredUpdateFunction.Modify;
			RequestedUpdateFunction = RequiredUpdateFunction.Modify;
			ProcessRequestedUpdateFunction(ResultOfUpdateFunction.Correct);
			}
		private void StoreNewEntry_OnClick(object Sender, RoutedEventArgs E)
			{
			UpdateDataModellInstance.UpdateFunction = RequiredUpdateFunction.InsertNew;
			RequestedUpdateFunction = RequiredUpdateFunction.InsertNew;
			ProcessRequestedUpdateFunction (ResultOfUpdateFunction.Correct);
			}
        public CommonSearchClass RefreshWorkListEntry(Guid GuidToRefresh, RequiredUpdateFunction RequiredFunction)
	        {
	        if (DataModell.WorkListData == null)
		        return null;
            switch (RequiredFunction)
                {
                    case RequiredUpdateFunction.InsertNew:
                        {
                        foreach (DataRow NewEntry in LoadCommonSearchClassEntries(GuidToRefresh))
                            {
                            try
                                {
                                DataModell.WorkListData.Insert(0, new CommonSearchClass(NewEntry));
 //TODO   							CheckEntryForConnectors(WorkListData[0]);
                                }
                            catch (Exception Excp)
                                {
                                }
                            }
                        if (DataModell.WorkListData.Count > 0)
                         return DataModell.WorkListData[0];
                        return null;
                        }
                        break;
                    case RequiredUpdateFunction.Modify:
                        {
                        List<CommonSearchClass> WorkListEntriesToProcess = new List<CommonSearchClass>();
                        foreach (CommonSearchClass Entry in DataModell.WorkListData) // Search for TimingsID's
                            {
                            if ((Entry.TimingsID == GuidToRefresh)
                                || (Entry.ID == GuidToRefresh))
                                {
                                WorkListEntriesToProcess.Add(Entry);
                                }
                            }
                        if (WorkListEntriesToProcess.Count > 0)
                            return WorkListEntriesToProcess[0];
                        return null;
                        }
                        break;
                    case RequiredUpdateFunction.Delete:
                        {
                        List<CommonSearchClass> WorkListEntriesToProcess = new List<CommonSearchClass>();
                        foreach (CommonSearchClass Entry in DataModell.WorkListData) // Search for TimingsID's
                            {
                            if ((Entry.TimingsID == GuidToRefresh)
                                || (Entry.ID == GuidToRefresh))
                                {
                                WorkListEntriesToProcess.Add(Entry);
                                }
                            }
                        foreach (CommonSearchClass EntryToDelete in WorkListEntriesToProcess)
                            {
                            DataModell.WorkListData.Remove(EntryToDelete);
                            }
                        return null;
                        }
                        break;
                }
            return null;
            }
		private void ResultFromDataChange_OnLastDataChangeActionResultCall(Guid InfoIDProcessed,
			RequiredUpdateFunction RequFunctions, ResultOfUpdateFunction Result)
			{

			if (RequFunctions != RequiredUpdateFunction.Delete)

				if ((DataModell.ActiveInformationen != null)
					&& (InfoIDProcessed != DataModell.ActiveInformationen.ID))
					throw new Exception("InfoIDProcessed != UpdateDataModellInstance.InformationenID");

			AltErlaaInfoWorkListControlInstance.ProcessTheResultOfLastDataChangeActionResultCall
				(InfoIDProcessed, RequFunctions, Result);
			}