public override ActionResult Index(RenderModel model)
        {
            var customModel = new ChalmersILLOrderListPageModel();

            _memberInfoManager.PopulateModelWithMemberData(Request, Response, customModel);

            if (!String.IsNullOrEmpty(Request.QueryString["query"]))
            {
                var queryString = Request.QueryString["query"].Trim();

                if (IsOrderId(queryString))
                {
                    queryString = "\"" + queryString + "\"";
                }

                customModel.PendingOrderItems = _orderItemSearcher.Search(queryString);
            }
            else
            {
                customModel.PendingOrderItems = _orderItemSearcher.Search(@"status:01\:Ny OR status:02\:Åtgärda OR status:09\:Mottagen OR 
                     (status:03\:Beställd AND followUpDate:[1975-01-01T00:00:00.000Z TO " + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + @"]) OR
                     (status:14\:Infodisk AND dueDate:[1975-01-01T00:00:00.000Z TO " + DateTime.Now.AddDays(5).Date.ToString("yyyy-MM-ddT") + @"23:59:59.999Z])");
            }

            return(CurrentTemplate(customModel));
        }
Exemplo n.º 2
0
 public void CalculateAllData(StatisticsRequest sReq)
 {
     foreach (var sVar in sReq.StatisticsData)
     {
         sVar.Values = new List <int>();
         foreach (var dataPointQuery in sVar.LuceneQueries)
         {
             sVar.Values.Add(_statCalc.CalculateDataPointValue(_searcher.Search(dataPointQuery), sVar.CalculationType));
         }
     }
 }
        private void SignalExpiredFollowUpDates()
        {
            try
            {
                var query = @"status:03\:Beställd AND 
                    followUpDate:[" + DateTime.Now.AddMinutes(-60).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + " TO " + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "]";

                // Search for our items and signal the ones that have expired recently.
                var results = _orderItemsSearcher.Search(query);
                foreach (var item in results)
                {
                    // -1 means that we haven't checked edited by properly and should disregard it
                    var memberId = -1;
                    _notifier.UpdateOrderItemUpdate(item.NodeId, memberId.ToString(), "", true, true);
                }
            }
            catch (Exception e)
            {
                LogHelper.Error <SystemSurfaceController>("Failed to signal expired follow up dates.", e);
            }
        }
Exemplo n.º 4
0
        public override ActionResult Index(RenderModel model)
        {
            var customModel = new ChalmersILLDiskPageModel();

            _memberInfoManager.PopulateModelWithMemberData(Request, Response, customModel);

            if (!String.IsNullOrEmpty(Request.QueryString["query"]))
            {
                customModel.OrderItems = _searcher.Search("((type:Bok AND status:(Infodisk OR Utlånad OR Transport OR Krävd OR Förlorad OR Förlorad\\?)) OR (type:Artikel AND status:Transport)) AND " +
                                                          "\"" + Request.Params["query"].Trim() + "\"");
            }

            return(CurrentTemplate(customModel));
        }
Exemplo n.º 5
0
        private string getBoundOrder(MailQueueModel m)
        {
            string ret = null;

            // Search for our items
            var    results = _orderItemSearcher.Search(@"status:01\:Ny OR status:02\:Åtgärda OR status:03\:Beställd OR status:04\:Väntar OR status:09\:Mottagen");
            string providerOrderId;
            string orderId;

            foreach (var result in results)
            {
                providerOrderId = result.ProviderOrderId;
                orderId         = result.OrderId;

                if (!String.IsNullOrEmpty(providerOrderId) && !String.IsNullOrEmpty(orderId))
                {
                    var attachmentIndicatingBinding = false;
                    foreach (var att in m.Attachments)
                    {
                        if (att.Title.EndsWith(".txt"))
                        {
                            att.Data.Position = 0;
                            StreamReader sr      = new StreamReader(att.Data);
                            string       dataStr = sr.ReadToEnd();
                            if (att.Title.Contains(providerOrderId) || dataStr.Contains(providerOrderId) || att.Title.Contains(orderId) || dataStr.Contains(orderId))
                            {
                                attachmentIndicatingBinding = true;
                                break;
                            }
                        }
                    }

                    if ((m.Subject != null && m.Subject.Contains(providerOrderId)) ||
                        (m.MessageBody != null && m.MessageBody.Contains(providerOrderId)) ||
                        (m.Subject != null && m.Subject.Contains(orderId)) ||
                        (m.MessageBody != null && m.MessageBody.Contains(orderId)) ||
                        attachmentIndicatingBinding)
                    {
                        ret = orderId;
                        break;
                    }
                }
            }

            return(ret);
        }
Exemplo n.º 6
0
        public ActionResult GetNodeIdsForOrderItemsWithGivenProviderName(string providerName)
        {
            var ids = new List <int>();

            try
            {
                ids = _orderItemsSearcher.Search("providerName:\"" + providerName + "\"")
                      .Where(x => x.ProviderName == providerName)
                      .Select(x => x.NodeId)
                      .ToList();
            }
            catch (Exception)
            {
                // NOP. Just return empty list if we fail, this should be enough indication that something is wrong and needs investigation.
            }

            return(Json(ids, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 7
0
 private bool OrderWithSeedIdAlreadyExists(string seedId)
 {
     return(_orderItemSearcher.Search("seedId:\"" + seedId + "\"").Count() > 0);
 }
Exemplo n.º 8
0
        public List <SimplifiedOrderItem> GetChillinDataForSierraPatron(int recordId, string lang)
        {
            var searchResults = _orderItemsSearcher.Search("sierraInfo.record_id:" + recordId + " AND " +
                                                           "(status:Ny OR status:Åtgärda OR status:Beställd OR status:Väntar OR status:Mottagen OR status:Infodisk OR status:Krävd OR status:Utlånad OR status:Transport OR " +
                                                           "(status:Levererad AND deliveryDate:[" + DateTime.Now.AddDays(-7).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + " TO " + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "])" +
                                                           ") AND -(status:Transport AND (previousStatus:Utlånad OR previousStatus:Krävd OR previousStatus:Infodisk))");

            var items = new List <SimplifiedOrderItem>();

            foreach (var orderItem in searchResults)
            {
                var newSimplifiedOrderItem = new SimplifiedOrderItem();

                var rawDueDate      = orderItem.DueDate;
                var rawType         = orderItem.Type;
                var rawStatus       = orderItem.Status;
                var rawReference    = orderItem.OriginalOrder;
                var rawDeliveryDate = orderItem.DeliveryDate;

                if (rawType == "Artikel")
                {
                    newSimplifiedOrderItem.Type = Translate("Artikel", lang);
                }
                else if (rawType == "Bok" || rawType == "Inköpsförslag")
                {
                    newSimplifiedOrderItem.Type = Translate("Bok", lang);
                }
                else
                {
                    newSimplifiedOrderItem.Type = Translate("Okänd", lang);
                }

                if (rawType == "Artikel")
                {
                    if (rawStatus.Contains("Levererad"))
                    {
                        newSimplifiedOrderItem.Status = Translate("Levererad", lang);
                    }
                    else
                    {
                        newSimplifiedOrderItem.Status = Translate("Ej tillgänglig än", lang);
                    }
                }
                else if (rawType == "Bok")
                {
                    if (rawStatus.Contains("Krävd"))
                    {
                        newSimplifiedOrderItem.Status = Translate("Krävd", lang) + " *";
                    }
                    else if (!rawStatus.Contains("Återsänd") && DateIsValid(rawDeliveryDate) && DateIsValid(rawDueDate) && DateTime.Now.Date > rawDueDate)
                    {
                        newSimplifiedOrderItem.Status = Translate("Försenad", lang) + " **";
                    }
                    else if (!rawStatus.Contains("Återsänd") && DateIsValid(rawDeliveryDate) && DateIsValid(rawDueDate) && DateTime.Now.Date <= rawDueDate)
                    {
                        newSimplifiedOrderItem.Status = Translate("ÅTER", lang) + " " + rawDueDate.ToString("yyyy-MM-dd");
                    }
                    else
                    {
                        newSimplifiedOrderItem.Status = Translate("Ej tillgänglig än", lang);
                    }
                }
                else
                {
                    newSimplifiedOrderItem.Status = Translate("Ej tillgänglig än", lang);
                }

                newSimplifiedOrderItem.Reference = rawReference.Length <= 120 ? rawReference : (rawReference.Substring(0, 117) + "...");

                items.Add(newSimplifiedOrderItem);
            }

            return(items);
        }
 private IEnumerable <OrderItemModel> GetOrderItemsThatAreRelevantForAutomaticMailSending()
 {
     return(_orderItemSearcher.Search("status:Utlånad OR status:Krävd"));
 }