public UpdateUnitTestTypeResponse UpdateUnitTestType(Guid accountId, UpdateUnitTestTypeRequestData data) { var request = GetRequest <UpdateUnitTestTypeRequest>(accountId); request.Data = data; var dispatcher = DispatcherHelper.GetDispatcherService(); return(dispatcher.UpdateUnitTestType(request)); }
public IUnitTestTypeCacheReadObject UpdateUnitTestType(Guid accountId, UpdateUnitTestTypeRequestData data) { if (data == null) { throw new ArgumentNullException("data"); } if (data.UnitTestTypeId == null) { throw new ParameterRequiredException("UnitTestTypeId"); } var lockObject = LockObject.ForUnitTestType(data.UnitTestTypeId.Value); lock (lockObject) { var request = new AccountCacheRequest() { AccountId = accountId, ObjectId = data.UnitTestTypeId.Value }; var unitTestType = AllCaches.UnitTestTypes.Read(request); // Если поменялось системное имя, то проверим, что нет другого типа проверки с таким системным именем if (!string.Equals(unitTestType.SystemName, data.SystemName, StringComparison.OrdinalIgnoreCase)) { var anotherUnitTestType = AllCaches.UnitTestTypes.FindByName(accountId, data.SystemName); if (anotherUnitTestType != null && anotherUnitTestType.Id != unitTestType.Id) { throw new ArgumentException("Тип проверки с таким системным именем уже существует"); } } using (var unitTestTypeWrite = AllCaches.UnitTestTypes.Write(request)) { unitTestTypeWrite.SystemName = data.SystemName; unitTestTypeWrite.DisplayName = data.DisplayName; unitTestTypeWrite.ActualTimeSecs = data.ActualTimeSecs; unitTestTypeWrite.NoSignalColor = data.NoSignalColor; unitTestTypeWrite.BeginSave(); unitTestTypeWrite.WaitSaveChanges(); } return(AllCaches.UnitTestTypes.Read(request)); } }