private void FinancialDistrictSetActivation(FinancialDistrictsSet selectedDistrictsSet, FinancialDistrictsSet activeFinancialDistrictSet) { if (activeFinancialDistrictSet != null) { activeFinancialDistrictSet.Status = DistrictsSetStatus.Draft; activeFinancialDistrictSet.DateActivated = null; UoW.Save(activeFinancialDistrictSet); } selectedDistrictsSet.Status = DistrictsSetStatus.Active; selectedDistrictsSet.DateActivated = DateTime.Now; UoW.Save(selectedDistrictsSet); UoW.Commit(); Refresh(); }
private IJournalAction CreateDeleteRouteListAction() { return(new JournalAction( "Удалить МЛ", selectedItems => selectedItems.FirstOrDefault() is RouteListJournalNode node && CanDeleteRouteList(node), selectedItems => true, selectedItems => { if (!(selectedItems.FirstOrDefault() is RouteListJournalNode selectedNode)) { return; } var routeList = UoW.Session.QueryOver <RouteList>() .Where(x => x.Id == selectedNode.Id) .SingleOrDefault <RouteList>(); var orders = new List <Order>(); foreach (var address in routeList.Addresses) { UoW.Session.Refresh(address.Order); if (address.Order.OrderStatus == OrderStatus.OnLoading || address.Order.OrderStatus == OrderStatus.InTravelList) { orders.Add(address.Order); } } if (!DeleteHelper.DeleteEntity.Invoke(typeof(RouteList), selectedNode.Id)) { return; } foreach (var order in orders) { order.ChangeStatusAndCreateTasks(OrderStatus.Accepted, _callTaskWorker); UoW.Save(order); } UoW.Commit(); Refresh(); } )); }
public void Repo_EmailQueue_UpdateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateEmails(); var email = UoW.EmailQueue.Get(QueryExpressionFactory.GetQueryExpression <tbl_EmailQueue>().ToLambda()) .First(); email.Subject += "(Updated)"; var result = UoW.EmailQueue.Update(email); UoW.Commit(); result.Should().BeAssignableTo <tbl_EmailQueue>(); }
public void Repo_TextQueue_UpdateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateTexts(); var text = UoW.TextQueue.Get(QueryExpressionFactory.GetQueryExpression <tbl_TextQueue>().ToLambda()) .First(); text.Body += "(Updated)"; var result = UoW.TextQueue.Update(text); UoW.Commit(); result.Should().BeAssignableTo <tbl_TextQueue>(); }
public void Repo_MOTDs_CreateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateMOTDs(); var result = UoW.MOTDs.Create( Mapper.Map <tbl_MOTD>(new MOTDTssV1 { author = TestDefaultConstants.MOTDAuthor, quote = "Quote-" + Base64.CreateString(4), })); UoW.Commit(); result.Should().BeAssignableTo <tbl_MOTD>(); }
void UpdateNorms(EmployeeProcessingJournalNode[] nodes) { var progressPage = NavigationManager.OpenViewModel <ProgressWindowViewModel>(null); var progress = progressPage.ViewModel.Progress; progress.Start(nodes.Length + 2, text: "Загружаем сотрудников"); var employees = UoW.GetById <EmployeeCard>(nodes.Select(x => x.Id)); progress.Add(text: "Загружаем нормы"); var norms = normRepository.GetNormsForPost(UoW, employees.Select(x => x.Post).Where(x => x != null).Distinct().ToArray()); int step = 0; foreach (var employee in employees) { progress.Add(text: $"Обработка {employee.ShortName}"); if (employee.Post == null) { Results[employee.Id] = "Отсутствует должность"; continue; } var norm = norms.FirstOrDefault(x => x.IsActive && x.Posts.Contains(employee.Post)); if (norm != null) { step++; employee.UsedNorms.Clear(); employee.AddUsedNorm(norm); UoW.Save(employee); Results[employee.Id] = "ОК"; if (step % 10 == 0) { UoW.Commit(); } } else { Results[employee.Id] = "Подходящая норма не найдена"; } } progress.Add(text: "Готово"); UoW.Commit(); NavigationManager.ForceClosePage(progressPage, CloseSource.FromParentPage); Refresh(); }
void UpdateNextIssue(EmployeeProcessingJournalNode[] nodes) { var progressPage = NavigationManager.OpenViewModel <ProgressWindowViewModel>(null); var progress = progressPage.ViewModel.Progress; loggerProcessing.Info($"Пересчет даты следующией выдачи для {nodes.Length} сотрудников"); loggerProcessing.Info($"База данных: {dataBaseInfo.Name}"); progress.Start(nodes.Length + 1, text: "Загружаем сотрудников"); var employees = UoW.GetById <EmployeeCard>(nodes.Select(x => x.Id)); int step = 0; foreach (var employee in employees) { progress.Add(text: $"Обработка {employee.ShortName}"); step++; var oldDates = employee.WorkwearItems.Select(x => x.NextIssue).ToArray(); employee.UpdateNextIssueAll(); var changes = employee.WorkwearItems.Select((x, i) => x.NextIssue?.Date != oldDates[i]?.Date ? $"Изменена дата следующей выдачи с {oldDates[i]:d} на {x.NextIssue:d} для потребности [{x.Title}]" : null) .Where(x => x != null).ToArray(); if (changes.Length > 0) { Results[employee.Id] = NumberToTextRus.FormatCase(changes.Length, "изменена {0} строка", "изменено {0} строки", "изменено {0} строк"); foreach (var message in changes) { loggerProcessing.Info(message); } } else { Results[employee.Id] = "Без изменений"; } UoW.Save(employee); if (step % 10 == 0) { UoW.Commit(); } } progress.Add(text: "Готово"); UoW.Commit(); NavigationManager.ForceClosePage(progressPage, CloseSource.FromParentPage); Refresh(); }
public void Repo_Logins_UpdateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateLogins(); var login = UoW.Logins.Get(QueryExpressionFactory.GetQueryExpression <tbl_Login>() .Where(x => x.Name == TestDefaultConstants.LoginName).ToLambda()) .Single(); login.Name += "(Updated)"; var result = UoW.Logins.Update(login); UoW.Commit(); result.Should().BeAssignableTo <tbl_Login>(); }
public void Repo_Logins_CreateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateLogins(); var result = UoW.Logins.Create( Mapper.Map <tbl_Login>(new LoginV1() { Name = TestDefaultConstants.LoginName, LoginKey = TestDefaultConstants.LoginKey, IsDeletable = true, })); UoW.Commit(); result.Should().BeAssignableTo <tbl_Login>(); }
public async Task<bool> CancelBooking(string token) { try { var booking = await UoW.Repository<Booking>().GetAsync(b => b.ReservationToken == token); if (booking == null) return false; booking.Canceled = true; UoW.Commit(); return true; } catch (Exception ex) { var msg = $"{ex.Message} : {ex.InnerException}"; Console.WriteLine(msg); } return false; }
public void Repo_Audiences_UpdateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateAudiences(); var audience = UoW.Audiences.Get(QueryExpressionFactory.GetQueryExpression <E_Audience>() .Where(x => x.Name == TestDefaultConstants.AudienceName).ToLambda()) .Single(); audience.Name += "(Updated)"; var result = UoW.Audiences.Update(audience); UoW.Commit(); result.Should().BeAssignableTo <E_Audience>(); }
public void Repo_MOTDs_UpdateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateMOTDs(); var MOTD = UoW.MOTDs.Get(QueryExpressionFactory.GetQueryExpression <tbl_MOTD>() .Where(x => x.Author == TestDefaultConstants.MOTDAuthor).ToLambda()) .First(); MOTD.Quote += "(Updated)"; var result = UoW.MOTDs.Update(MOTD); UoW.Commit(); result.Should().BeAssignableTo <tbl_MOTD>(); }
public void Repo_Users_CreateV1_Success() { var result = UoW.Users.Create( Mapper.Map <tbl_User>(new UserV1() { UserName = TestDefaultConstants.UserName, Email = TestDefaultConstants.UserName, PhoneNumber = NumberAs.CreateString(11), FirstName = "First-" + Base64.CreateString(4), LastName = "Last-" + Base64.CreateString(4), IsLockedOut = false, IsHumanBeing = true, IsDeletable = false, })); UoW.Commit(); result.Should().BeAssignableTo <tbl_User>(); }
public void Repo_Issuers_UpdateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateIssuers(); var issuer = UoW.Issuers.Get(QueryExpressionFactory.GetQueryExpression <E_Issuer>() .Where(x => x.Name == TestDefaultConstants.IssuerName).ToLambda()) .Single(); issuer.Name += "(Updated)"; var result = UoW.Issuers.Update(issuer); UoW.Commit(); result.Should().BeAssignableTo <E_Issuer>(); }
public void Repo_Claims_UpdateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateClaims(); var claim = UoW.Claims.Get(QueryExpressionFactory.GetQueryExpression <uvw_Claim>() .Where(x => x.Type == TestDefaultConstants.ClaimName).ToLambda()) .Single(); claim.Value += "(Updated)"; var result = UoW.Claims.Update(claim); UoW.Commit(); result.Should().BeAssignableTo <uvw_Claim>(); }
private void CreateCopyAction() { var copyAction = new JournalAction("Копировать", selectedItems => canCreate && selectedItems.OfType <DistrictsSetJournalNode>().FirstOrDefault() != null, selected => true, selected => { var selectedNode = selected.OfType <DistrictsSetJournalNode>().FirstOrDefault(); if (selectedNode == null) { return; } var districtsSetToCopy = UoW.GetById <DistrictsSet>(selectedNode.Id); var alreadyCopiedDistrict = UoW.Session.QueryOver <District>().WhereRestrictionOn(x => x.CopyOf.Id).IsIn(districtsSetToCopy.Districts.Select(x => x.Id).ToArray()).Take(1).SingleOrDefault(); if (alreadyCopiedDistrict != null) { commonServices.InteractiveService.ShowMessage(ImportanceLevel.Warning, $"Выбранная версия районов уже была скопирована\nКопия: (Код: {alreadyCopiedDistrict.DistrictsSet.Id}) {alreadyCopiedDistrict.DistrictsSet.Name}"); return; } if (commonServices.InteractiveService.Question($"Скопировать версию районов \"{selectedNode.Name}\"")) { var copy = (DistrictsSet)districtsSetToCopy.Clone(); copy.Name += " - копия"; if (copy.Name.Length > DistrictsSet.NameMaxLength) { copy.Name = copy.Name.Remove(DistrictsSet.NameMaxLength); } copy.Author = employeeRepository.GetEmployeeForCurrentUser(UoW); copy.Status = DistrictsSetStatus.Draft; copy.DateCreated = DateTime.Now; UoW.Save(copy); UoW.Commit(); commonServices.InteractiveService.ShowMessage(ImportanceLevel.Info, "Копирование завершено"); Refresh(); } } ); NodeActionsList.Add(copyAction); }
public FileModel Update(FileModel entity) { if (entity != null) { try { File category = _mapper.Map <File>(entity); _repo.Update(category); UoW.Commit(); return(entity); } catch (Exception) { UoW.RollBack(); return(null); } } return(null); }
public SubCategoryModel Update(SubCategoryModel entity) { if (entity != null) { try { SubCategory subCategory = _mapper.Map <SubCategory>(entity); _repo.Update(subCategory); UoW.Commit(); return(entity); } catch (Exception) { UoW.RollBack(); return(null); } } return(null); }
public TodoModel Update(TodoModel entity) { if (entity != null) { try { Todo todo = _mapper.Map <Todo>(entity); _repo.Update(todo); UoW.Commit(); return(entity); } catch (Exception) { UoW.RollBack(); return(null); } } return(null); }
public LinkModel Update(LinkModel entity) { if (entity != null) { try { Link link = _mapper.Map <Link>(entity); _repo.Update(link); UoW.Commit(); return(entity); } catch (Exception) { UoW.RollBack(); return(null); } } return(null); }
public void Repo_Issuers_CreateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateIssuers(); var result = UoW.Issuers.Create( Mapper.Map <E_Issuer>(new IssuerV1() { Name = TestDefaultConstants.IssuerName, IssuerKey = TestDefaultConstants.IssuerKey, IsEnabled = true, IsDeletable = true, })); UoW.Commit(); result.Should().BeAssignableTo <E_Issuer>(); }
public override bool Save() { var valid = new QSValidation.QSValidator <CarLoadDocument> (UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } Entity.LastEditor = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW); Entity.LastEditedTime = DateTime.Now; if (Entity.LastEditor == null) { MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика."); return(false); } if (Entity.Items.Any(x => x.Amount == 0)) { if (MessageDialogWorks.RunQuestionDialog("В списке есть нулевые позиции. Убрать нулевые позиции перед сохранением?")) { Entity.ClearItemsFromZero(); } } Entity.UpdateOperations(UoW); logger.Info("Сохраняем погрузочный талон..."); UoWGeneric.Save(); logger.Info("Меняем статус маршрутного листа..."); if (Entity.RouteList.ShipIfCan(UoW)) { MessageDialogWorks.RunInfoDialog("Маршрутный лист отгружен полностью."); } UoW.Save(Entity.RouteList); UoW.Commit(); logger.Info("Ok."); return(true); }
private List <OrderLine> CreateOrderLines(long orderId, IList <OrderlineDto> orderLines) { try { var orderLinesMap = Mapper.Map <List <OrderLine> >(orderLines).Select(c => { c.IdOrder = orderId; c.OrderDishExtraIngredient = new List <OrderDishExtraIngredient>(); c = UoW.Repository <OrderLine>().Create(c); UoW.Commit(); return(c); }); return(orderLinesMap.ToList()); } catch (Exception ex) { Console.WriteLine($"{ex.Message} : {ex.InnerException}"); throw ex; } }
protected void ReplyButton_Click(object sender, EventArgs e) { string userId = Request.UserHostAddress; using (UoW.Create()) { Post post = Posts.GetById(PostId); string name = NameTextbox.Text; string email = EmailTextbox.Text; string website = WebsiteTextbox.Text; string body = CommentTextbox.Text; post.ReplyTo(new UserInfo(name, website, email, userId), body); UoW.Commit(); NameTextbox.Text = ""; EmailTextbox.Text = ""; WebsiteTextbox.Text = ""; CommentTextbox.Text = ""; } }
public async Task<BookingResponseDto> CreateReservationAndGuestList(int bookingDtoType, string bookingDtoName, int reservationDtoAssistants, IList<string> reservationDtoGuestList, string reservationDtoEmail, DateTime reservationDtoDate, long? userId) { try { var reservation = CreateReservation(bookingDtoType, bookingDtoName, reservationDtoAssistants, reservationDtoEmail, reservationDtoDate, userId); //we add the organizer as guest if the invitation is GuestBooking type if (bookingDtoType != 0) reservationDtoGuestList.Add(reservationDtoEmail); var invitationGuestList = CreateInvitationGuests(reservation.Id, reservationDtoGuestList, reservationDtoEmail); UoW.Commit(); await SendReservationEmail(bookingDtoType, bookingDtoName, reservationDtoAssistants, invitationGuestList, reservationDtoEmail, reservationDtoDate, reservation); return Mapper.Map<BookingResponseDto>(reservation); } catch (Exception ex) { var msg = $"{ex.Message} : {ex.InnerException}"; Console.WriteLine(msg); throw ex; } }
private Order CreateOrder(string bookingToken) { var order = new Order(); try { var booking = GetBooking(bookingToken); if (booking == null) { throw new Exception("No booking"); } var bookingtype = bookingToken.StartsWith("CB") ? OrderTypeEnum.CommonBooking : OrderTypeEnum.GuestBooking; var orders = UoW.Repository <Order>().GetAll(o => o.IdReservation == booking.Id || o.IdInvitationGuest == booking.Id); if (orders != null && orders.Count > 0) { throw new Exception("The order already exists"); } else { order = bookingtype == OrderTypeEnum.CommonBooking ? new Order { IdReservation = booking.Id } } : new Order { IdInvitationGuest = booking.Id };; order = UoW.Repository <Order>().Create(order); UoW.Commit(); return(order); } catch (Exception ex) { Console.WriteLine($"{ex.Message} : {ex.InnerException}"); throw ex; } }
private List <InvitedGuest> CreateInvitationGuests(long bookingId, IList <string> guestList, string userEmail) { var result = new List <InvitedGuest>(); foreach (var mail in guestList.Distinct()) { var item = new InvitedGuest() { IdBooking = bookingId, Email = mail, Accepted = null, ModificationDate = DateTime.Now, GuestToken = GetReservationToken(BookingTypeConst.GuestBooking, userEmail) }; UoW.Repository <InvitedGuest>().Create(item); result.Add(item); } UoW.Commit(); return(result); }
public void Repo_States_UpdateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateUserStates(); var user = UoW.Users.Get(QueryExpressionFactory.GetQueryExpression <tbl_User>() .Where(x => x.UserName == TestDefaultConstants.UserName).ToLambda()) .Single(); var state = UoW.States.Get(QueryExpressionFactory.GetQueryExpression <tbl_State>() .Where(x => x.UserId == user.Id).ToLambda()) .First(); state.StateConsume = true; var result = UoW.States.Update(state); UoW.Commit(); result.Should().BeAssignableTo <tbl_State>(); }
public void Repo_AuthActivity_CreateV1_Success() { var data = new TestDataFactory(UoW); data.Destroy(); data.CreateAudiences(); var audience = UoW.Audiences.Get(QueryExpressionFactory.GetQueryExpression <tbl_Audience>() .Where(x => x.Name == TestDefaultConstants.AudienceName).ToLambda()) .Single(); var result = UoW.AuthActivity.Create( Mapper.Map <tbl_AuthActivity>(new AuthActivityV1() { AudienceId = audience.Id, LoginType = GrantFlowType.ClientCredentialV2.ToString(), LoginOutcome = GrantFlowResultType.Success.ToString(), })); UoW.Commit(); result.Should().BeAssignableTo <tbl_AuthActivity>(); }
private bool Save(bool needClose = true) { var valid = new QSValidator <UndeliveredOrder>(UndeliveredOrder); if (valid.RunDlgIfNotValid((Window)this.Toplevel)) { return(false); } if (UndeliveredOrder.Id == 0) { UndeliveredOrder.OldOrder.SetUndeliveredStatus(UoW, _baseParametersProvider, CallTaskWorker); } undeliveryView.BeforeSaving(); //случай, если создавать новый недовоз не нужно, но нужно обновить старый заказ if (!CanCreateUndelivery()) { UoW.Save(UndeliveredOrder.OldOrder); UoW.Commit(); this.OnCloseTab(false); return(false); } UoW.Save(UndeliveredOrder); if (UndeliveredOrder.NewOrder != null && UndeliveredOrder.OrderTransferType == TransferType.AutoTransferNotApproved && UndeliveredOrder.NewOrder.OrderStatus != OrderStatus.Canceled) { ProcessSmsNotification(); } if (needClose) { this.OnCloseTab(false); } return(true); }
public void When_Exception_Occured_Must_Return_DataResult_With_Exception() { // // Arrange // var mockContext = new Mock<EFDbContext>(); var mockRepoFactory = new Mock<IRepositoryFactory>(); Action action = () => { throw new Exception(); }; var uow = new UoW(mockContext.Object, mockRepoFactory.Object); // // Act // var result = uow.Commit(action); // // Assert // mockContext.Verify(x=>x.SaveChanges(), Times.Never); Assert.IsNotNull(result); Assert.IsNotNull(result.Exception); }
public void When_Passed_An_Action_To_Commit_That_Action_Must_Execute() { // // Arrange // var mockContext = new Mock<EFDbContext>(); var mockRepoFactory = new Mock<IRepositoryFactory>(); var mockAction = new Mock<Action>(); var uow = new UoW(mockContext.Object, mockRepoFactory.Object); // // Act // uow.Commit(mockAction.Object); // // Assert // mockAction.Verify(x => x(), Times.Once); }