public override RemoteResult InitDb() { var connection = _implModule.RentConnectionInner(); bool result = _userCommandCreator.CreateDb(connection.Element); connection.Dispose(); RemoteResult ret; if (result) { var idinit = _userCommandCreator.GetKeyInitialization(); var metaCommand = _metaDataCommandCreator.InitMetaDataDb(idinit); ret = _implModule.ExecuteNonQuery(metaCommand); } else { ret = new InnerFailResult("Fail init db"); } if (!(ret is SuccessResult)) { ret = new InnerServerError(ret); } return(ret); }
private RemoteResult UpdateInner(InnerData obj, bool local) { object key; object value; DeserializeData(obj, out key, out value); var command = _userCommandCreator.Update((TKey)key, (TValue)value); RemoteResult ret = _implModule.ExecuteNonQuery(command); if (!ret.IsError) { command = _metaDataCommandCreator.UpdateMetaData(local); command = _metaDataCommandCreator.SetKeytoCommand(command, key); ret = _implModule.ExecuteNonQuery(command); } if (ret.IsError) { ret = new InnerServerError(ret); } return(ret); }
private RemoteResult CreateInner(InnerData obj, bool local) { var timer = WriterCounters.Instance.CreateTimer.StartNew(); object key; object value; DeserializeData(obj, out key, out value); var command = _userCommandCreator.Create((TKey)key, (TValue)value); RemoteResult ret = _implModule.ExecuteNonQuery(command); if (!ret.IsError) { var metaTimer = WriterCounters.Instance.CreateMetaDataTimer.StartNew(); var metaCommand = _metaDataCommandCreator.CreateMetaData(local); metaCommand = _metaDataCommandCreator.SetKeytoCommand(metaCommand, key); ret = _implModule.ExecuteNonQuery(metaCommand); metaTimer.Complete(); } if (ret.IsError) { ret = new InnerServerError(ret); } timer.Complete(); return(ret); }
public override RemoteResult Create(InnerData obj, bool local) { var meta = ReadMetaData(obj); if (meta.Item1 == null && meta.Item2) { return(CreateInner(obj, local)); } if (meta.Item1 == null && !meta.Item2) { return(CreateMetaUpdateData(obj, local)); } object key; object value; DeserializeData(obj, out key, out value); if (meta.Item2) { var command = _userCommandCreator.Create((TKey)key, (TValue)value); RemoteResult ret = _implModule.ExecuteNonQuery(command); if (ret.IsError) { return(new InnerServerError(ret)); } } if (meta.Item1.IsDeleted) { var metaCommand = _metaDataCommandCreator.SetDataNotDeleted(); metaCommand = _metaDataCommandCreator.SetKeytoCommand(metaCommand, key); var ret = _implModule.ExecuteNonQuery(metaCommand); if (ret.IsError) { ret = new InnerServerError(ret); } else { return(UpdateInner(obj, local)); } return(ret); } return(new InnerServerError(Errors.DataAlreadyExists)); }
public override RemoteResult Delete(InnerData obj) { object key; DeserializeKey(obj, out key); var metaCommand = _metaDataCommandCreator.SetDataDeleted(); metaCommand = _metaDataCommandCreator.SetKeytoCommand(metaCommand, key); RemoteResult ret = _implModule.ExecuteNonQuery(metaCommand); if (ret.IsError) { ret = new InnerServerError(ret); } return(ret); }