public bool TryUpdateDuty(IDuty changedDuty)
        {
            Duty duty       = null;
            bool successful = false;

            OnDatBaseConnectionStatusChanged(DataBaseConnectionStatusFlag.Connecting, null);
            using (var context = new DutyContext(_dataBaseName))
            {
                try
                {
                    duty = context.Duties.First(d => d.Id == changedDuty.Id);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    OnDatBaseConnectionStatusChanged(DataBaseConnectionStatusFlag.ElementNotFound, e);
                }

                OnDatBaseConnectionStatusChanged(DataBaseConnectionStatusFlag.Finished, null);

                if (duty != null)
                {
                    OnDatBaseConnectionStatusChanged(DataBaseConnectionStatusFlag.Connecting, null);
                    try
                    {
                        context.Entry(duty).CurrentValues.SetValues(changedDuty);
                        context.SaveChanges();
                        successful = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        OnDatBaseConnectionStatusChanged(DataBaseConnectionStatusFlag.UpdateFailed, e);
                    }

                    OnDatBaseConnectionStatusChanged(DataBaseConnectionStatusFlag.Finished, null);
                }

                return(successful);
            }
        }
示例#2
0
 public void SetNext(IDuty nextAuditor)
 {
     this._NextAudtitor = nextAuditor;
 }