private void Reject_Click(object sender, RoutedEventArgs e) { string to = parsedData.Email; string subject = "Zamówienie nr. " + parsedData.Number; string content = "Przepraszamy, ale zamówienia zostało anulowane."; MailSender mailSender = new MailSender(); mailSender.Send(to, content, subject); Database.assignments.SelectAll().RemoveAll(x => x.orderId == parsedData.Number); Database.assignments.SaveData(); Database.orders.SelectAll().RemoveAll(x => x.Number == parsedData.Number); Database.orders.SaveData(); unfinishedIds.Remove(parsedData.Number); ids.Remove(parsedData.Number); UnfinishedOrdersList.Items.Refresh(); OrdersList.Items.Refresh(); MessageBox.Show("Odmowa została wysłana.", "Wysłanie wiadomości"); var step = new Process().Next(StepNames.OrderMerged, DecisionType.Decline); ShitHelper.Publish(step.CurrentStep, new ProcessMessage { Step = step.CurrentStep, }); SetEditorFromOrder(null); }
public void Send(OrderData data) { var process = new Process(); var current = process.Start; var number = GenerateNumber; IncreaseNumber(); data.Number = number; var prezes = _emails.FirstStepWorkers().FirstOrDefault(); var products = String.Join("\n", data.Products.Select(x => $"{x.Product}: {x.Quantity}")); _mailSender.Send(prezes, $"nowe zamówienie o numerze {number} od {data.Name} {data.LastName}\nzamówienie na:\n{products}", $"nowe zamówienie nr {number}", new List <Attachment> { Attachment.CreateAttachmentFromString(JsonConvert.SerializeObject(data), $"zamówienie_{number}.json") }); ShitHelper.Publish(current.CurrentStep, new ProcessMessage { Step = current.CurrentStep, Attachments = new Dictionary <Data, object> { { Data.OrderDataFile, JsonConvert.SerializeObject(data) } } }); }
private void RefreshButton_Click(object sender, RoutedEventArgs e) { ids.Clear(); unfinishedIds.Clear(); messages = EmailRepository.GetAllMessages(); List <WorkerAssignmentData> assignments = Database.assignments.SelectAll(); List <int> orderIds = assignments.Select(x => x.orderId).Distinct().ToList(); foreach (int orderId in orderIds) { IEnumerable <MailMessage> messagesFiltered = messages.Where(x => x.Subject.EndsWith("Zamówienie nr " + orderId)); if (!messagesFiltered.Any()) { unfinishedIds.Add(orderId); continue; } List <MailMessage> messagesForOrder = messagesFiltered.ToList(); List <WorkerAssignmentData> assignmentsForOrder = assignments.Where(x => x.orderId == orderId).ToList(); if (messagesForOrder.Count < assignmentsForOrder.Count) { unfinishedIds.Add(orderId); continue; } //sprawdzenie czy każdy pracownik wysłał maila bool unfinished = false; foreach (WorkerAssignmentData workerAssignment in assignmentsForOrder) { if (!messagesForOrder.Exists(x => x.From != null && workerAssignment.worker.Email == x.From.Address)) { unfinishedIds.Add(orderId); unfinished = true; break; } } if (!unfinished) { ids.Add(orderId); } //rozumiem ze tutaj jest juz sytuacja w której excele są zmergowane??? Jesli tak to ten kod jes ok var step = new Process().Next(StepNames.OrderForImplementation, DecisionType.Ok); ShitHelper.Publish(step.CurrentStep, new ProcessMessage { Step = step.CurrentStep, }); } OrdersList.Items.Refresh(); UnfinishedOrdersList.Items.Refresh(); }
private void PushProcess(DecisionType decision, Dictionary <Data, object> attachs) { if (messageId.HasValue) { ShitHelper.Model.BasicAck(messageId.Value, false); } var nextStep = new Process().Next(Process.MyStep, decision); ShitHelper.Publish(nextStep.CurrentStep, new ProcessMessage { Step = nextStep.CurrentStep, Attachments = attachs }); }
private void SendButton_Click(object sender, RoutedEventArgs e) { if (!Validate()) { MessageBox.Show("Proszę o przypisanie pracownika do realizacji wszystkich części zamówienia!", "Nie przypisane elementy zamówienia"); } else { Database.orders.InsertElement(data); string Body = "W załączniku otrzymał Pan/Pani dokument excel, który musi zostać uzupełniony."; string Subject = "Zamówienie nr " + data.Number; foreach (WorkerAssignmentData assignment in assignments) { if (assignment.orders.Count > 0) { Database.assignments.InsertElement(assignment); SendAssignment(assignment); string fileName = assignment.worker.LastName + "_zamowienie.xls"; Workbook workbook = ExcelManager.CreateWorkbookFromAssignment(assignment); workbook.Save(fileName); MailSender esender = new MailSender(); MailMessage MyMessage = new MailMessage(); MyMessage.Attachments.Add(new MailAttachment(fileName)); esender.Send(assignment.worker.Email, Body, Subject, MyMessage.Attachments); } } ShitHelper.Model.BasicAck(_tag, false); var step = new Process().Next(StepNames.OrderAccepted, DecisionType.Ok); ShitHelper.Publish(step.CurrentStep, new ProcessMessage { Step = step.CurrentStep, }); MessageBox.Show("Zamówienie zostało przekazane do dalszej realizacji."); GotoMainWindow(); } }
private void Accept_Click(object sender, RoutedEventArgs e) { //ZMIENNE Z KTÓRYCH MOŻESZ KORZYSTAĆ :: //parsedData -> przetwarzane zamówienie, typ OrderData //parsedProductList -> produkty wzbogacone o informacje z excela. NIE KORZYSTAJ Z parsedOrder.Products !!!!!!!!!1 MessageBox.Show("Tutaj należy dodać dalszą część.", "Wysłanie wiadomości"); var step = new Process().Next(StepNames.OrderMerged, DecisionType.Ok); ShitHelper.Publish(step.CurrentStep, new ProcessMessage { Step = step.CurrentStep, Attachments = new Dictionary <Data, object> { { Data.OrderDataFile, JsonConvert.SerializeObject(parsedData) } } }); SetEditorFromOrder(null); }