void Application_Error(object sender, EventArgs e)
        {
            string error = "";

            if (Context != null && Server.GetLastError() != null)
            {
                DataTypesHelper.getError(Context.Error, ref error);
            }

            if (HttpContext.Current.Error != null)
            {
                DataTypesHelper.getError(HttpContext.Current.Error, ref error);
            }

            //if is there error on client side we need aditional information about error

            error += "\r\n \r\n" + sender.GetType().FullName + "\r\n" + HttpContext.Current.Request.UrlReferrer.AbsoluteUri + "\r\n";

            DataTypesHelper.LogThis(error);

            if (Context != null)
            {
                Context.ClearError();
            }


            Server.ClearError();
        }
Exemple #2
0
        private void ExtractDataFromName(ProductModel pItem)
        {
            string sNaziv = pItem.Naziv;

            if (sNaziv != null)
            {
                sNaziv = sNaziv.Trim().ToUpper();


                string[] split = sNaziv.Split(' ');
                foreach (var item in split)
                {
                    // weight
                    if (item.Contains("g") || item.Contains("G"))
                    {
                        string[] splWeight = item.Split('G');
                        if (splWeight.Length == 2 && DataTypesHelper.IsNumeric(splWeight[0].ToString()))
                        {
                            pItem.Gramatura = item;
                        }
                    }



                    // tek
                    if ((item == "BB") || (item == "SB"))
                    {
                        pItem.Tek = item;
                    }
                }
            }

            pItem.Kategorija = GetCategoryFromIdentNumber(pItem.StevilkaArtikel);
        }
Exemple #3
0
        private void ProcessEventsToAvtomatika()
        {
            try
            {
                //poiščemo takšne dogodke ki so v tabeli Dogodki in jih ne najdemo v SystemMessageEvents tabeli
                //int tip = (int)Enums.SystemMessageEventStatus.UnProcessed;
                var query = from dogodek in context.Dogodek
                            where dogodek.Tip.Equals("Avtomatika") && !context.Avtomatika.Any(a => (a.DogodekID == dogodek.idDogodek))
                            select new EventFullModel
                {
                    idDogodek      = dogodek.idDogodek,
                    tsIDOsebe      = dogodek.tsIDOsebe.HasValue ? dogodek.tsIDOsebe.Value : 0,
                    DatumOtvoritve = dogodek.DatumOtvoritve.Value,
                    Izvajalec      = dogodek.Osebe.idOsebe,
                    Opis           = dogodek.Opis
                };
                foreach (var item in query.ToList())
                {
                    DataTypesHelper.LogThis("*****In foreach statement*****");
                    DataTypesHelper.LogThis("*****Dogodek: *****" + "ID: " + item.idDogodek.ToString() + " Oseba: " + item.Izvajalec.Value.ToString());

                    Avtomatika newAutoEvent = new Avtomatika();
                    newAutoEvent.AvtomatikaID       = 0;
                    newAutoEvent.Status             = (int)Enums.SystemMessageEventStatus.UnProcessed;
                    newAutoEvent.OsebaID            = item.Izvajalec.HasValue ? item.Izvajalec.Value : 0;
                    newAutoEvent.DogodekID          = item.idDogodek;
                    newAutoEvent.StopnjaNadrejenega = 1;
                    newAutoEvent.ts   = DateTime.Now;
                    newAutoEvent.Opis = item.Opis;
                    context.Avtomatika.Add(newAutoEvent);
                }
                context.SaveChanges();
            }
            catch (ReflectionTypeLoadException ex)
            {
                StringBuilder sb = new StringBuilder();
                foreach (Exception exSub in ex.LoaderExceptions)
                {
                    sb.AppendLine(exSub.Message);
                    FileNotFoundException exFileNotFound = exSub as FileNotFoundException;
                    if (exFileNotFound != null)
                    {
                        if (!string.IsNullOrEmpty(exFileNotFound.FusionLog))
                        {
                            sb.AppendLine("Fusion Log:");
                            sb.AppendLine(exFileNotFound.FusionLog);
                        }
                    }
                    sb.AppendLine();
                }
                string errorMessage = sb.ToString();
                //DataTypesHelper.LogThis("*****ReflectionTypeLoadException!  - ***** " + errorMessage);
                //Display or log the error based on your application.
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis("*****Exception!  - ***** " + ValidationExceptionError.res_08 + " " + ex.Message);
                throw new Exception(ValidationExceptionError.res_08, ex);
            }
        }
        /// <summary>
        /// Launch the application with some options set.
        /// </summary>
        public void LaunchPantheonCreatePDF()
        {
            // For the example
            string ex1              = ConfigurationManager.AppSettings["PantheonCreatePDFPath"].ToString();
            string PanthExeFile     = ConfigurationManager.AppSettings["PantheonEXEFile"].ToString();
            string PanthExeArgs     = ConfigurationManager.AppSettings["PantheonEXEArgs"].ToString();
            string PanthDB          = ConfigurationManager.AppSettings["PantheonDB"].ToString();
            string sPanthExeTimeout = ConfigurationManager.AppSettings["PantheonEXETimeOut"];

            DataTypesHelper.LogThis("OTP Config: PDF Path: " + ex1 + ", PantheonEXEFile: " + PanthExeFile + ", Args: " + PanthExeArgs + ", PanthDB: " + PanthDB + ", Timeout: " + sPanthExeTimeout);

            int timeout = Convert.ToInt32(sPanthExeTimeout);

            //string ex1 = "C:\\Temp\\OtpProject\\";
            PanthExeArgs = PanthExeArgs.Replace("DatabaseNameDB", "\"" + PanthDB + "\"");

            DataTypesHelper.LogThis("OTP Process info - Config");
            // Use ProcessStartInfo class
            ProcessStartInfo startInfo = new ProcessStartInfo();

            startInfo.CreateNoWindow  = false;
            startInfo.UseShellExecute = false;
            //startInfo.FileName = ex1 + "CreatePDFPantheon.bat";
            startInfo.FileName  = PanthExeFile;
            startInfo.Arguments = PanthExeArgs;

            startInfo.WindowStyle = ProcessWindowStyle.Normal;
            //startInfo.Arguments = "/lens";

            DataTypesHelper.LogThis("OTP Start File: " + startInfo.FileName.ToString());
            DataTypesHelper.LogThis("OTP Start Args: " + startInfo.Arguments.ToString());

            if (!File.Exists(startInfo.FileName))
            {
                DataTypesHelper.LogThis("OTP App doesnt exist: " + startInfo.FileName.ToString());
                return;
            }

            try
            {
                // Start the process with the info we specified.
                // Call WaitForExit and then the using statement will close.
                DataTypesHelper.LogThis("OTP Run Process - Start");
                using (Process exeProcess = Process.Start(startInfo))
                {
                    DataTypesHelper.LogThis("OTP Process - Start timeout");
                    exeProcess.WaitForExit(timeout);
                    DataTypesHelper.LogThis("OTP Run Process - Succesfull");
                    if (exeProcess.HasExited == false)
                    {
                        DataTypesHelper.LogThis("OTP Process - Killed");
                        exeProcess.Kill();
                    }
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis(ex.Message + "\r\n " + ex.Source + "\r\n " + ex.StackTrace);
            }
        }
        public void CheckRecallsForCarriersSubmittingPrices()
        {
            //pridobi vse odpoklice ki imajo flag PovprasevanjePolsnoPrevoznikom nastavlen na 1 in PrevoznikOddalNajnizjoCeno 0 ter DatumNaklada še ni potekel
            List <int> recalls = context.Odpoklic.Where(o => o.PovprasevanjePoslanoPrevoznikom.Value &&
                                                        !o.PrevoznikOddalNajnizjoCeno.Value &&
                                                        o.DatumNaklada > DateTime.Now).Select(o => o.OdpoklicID).ToList();//select uporabimo zato ker v spodnjem query kličemo funkcijo Any ki dovoljuje samo enostavne

            //pridobimo vse prijave prevoznikov ki predstavljajo odpoklice v seznamu odpoklicev (recalls) in jih grupiramo po OdpoklicID polju
            List <IGrouping <Odpoklic, PrijavaPrevoznika> > listPrijavaPrevoznika = context.PrijavaPrevoznika.Where(pp => recalls.Any(o => o == pp.OdpoklicID)).ToList().GroupBy(g => g.Odpoklic).ToList();

            foreach (var item in listPrijavaPrevoznika)
            {
                //En teden pred datumom naklada
                DateTime oneWeekFromLoadingDate = item.Key.DatumNaklada.Value.AddDays(-7);

                if (oneWeekFromLoadingDate.Date == DateTime.Now.Date)//če je današnji dan enak tistemu ki je en teden pred datumom naklada
                {
                    DataTypesHelper.LogThis("Trenutni datum je 1 teden pred datumom naklada " + item.Key.DatumNaklada.Value.ToShortDateString() + " za " + item.Key.Relacija.Naziv);
                    CheckForLowestPriceInPrijavaPrevoznika(item);
                }
                else if (oneWeekFromLoadingDate.Date < DateTime.Now.Date && item.Key.DatumNaklada.Value.Date > DateTime.Now.Date)//če je današnji datum večji (pretekel) kot en teden pre datumom naklada in vseeno manjši od datuma naklada.
                {
                    DataTypesHelper.LogThis("Trenutni datum je pretekel Datum naklada -1 teden " + item.Key.DatumNaklada.Value.ToShortDateString() + " za " + item.Key.Relacija.Naziv);
                    //Implementiraj da se bo pošiljalo samo enkrat na dan.
                    //Pošljemo mail logistiki.
                    //Še vseeno zbiramo najnižjo ceno prevoznikov
                    CheckForLowestPriceInPrijavaPrevoznika(item);
                }
            }
        }
 static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
 {
     if (e != null && e.ExceptionObject != null)
     {
         DataTypesHelper.LogThis(e.ExceptionObject.ToString());
     }
 }
Exemple #7
0
        private string ReplaceDefaultValuesInTemplate(Object o, string template)
        {
            string result = "";
            string value  = template;
            Type   type   = o.GetType();

            object[] indexArgs = { 0 };

            PropertyInfo[] myFields = type.GetProperties(BindingFlags.Public
                                                         | BindingFlags.Instance);

            for (int i = 0; i < myFields.Length; i++)
            {
                try
                {
                    value = value.Replace("$%" + myFields[i].Name + "%$", myFields[i].GetValue(o, null) == null ? "" : myFields[i].GetValue(o, null).ToString());
                }
                catch (Exception ex)
                {
                    DataTypesHelper.LogThis(ex.Message);
                }
            }

            result = value;
            return(result);
        }
Exemple #8
0
        public void CreateEmailForAdmin_NoPDFForOrderPDO(string sOdobritevKomentar, string sStevilkaDokumenta, string sStevilkaNarocilnice, bool bOdpoklic)
        {
            StreamReader reader = null;

            try
            {
                //DataTypesHelper.LogThis("*****IN Method ProcessEventMessage*****");

                string emailSubject    = SystemEmailMessageResource.res_21;
                string templatePathRez = (AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["ADMIN_EMAIL_RECALL"].ToString()).Replace("\"", "\\");
                string templatePath    = (ConfigurationManager.AppSettings["ADMIN_EMAIL_RECALL"].ToString()).Replace("\"", "\\");

                //DataTypesHelper.LogThis(AppDomain.CurrentDomain.BaseDirectory);
                RecallApprovalEmailModel message = new RecallApprovalEmailModel();

                templatePath = File.Exists(templatePath) ? templatePath : templatePathRez;

                reader = new StreamReader(templatePath);
                string templateString = reader.ReadToEnd();

                message.Comments   = sOdobritevKomentar;
                message.OdpoklicID = sStevilkaDokumenta;
                // return all user with admin role
                List <Osebe_PDO> employeesList = context.Osebe_PDO.Where(o => o.VlogaID == 2).ToList();
                if (employeesList != null)
                {
                    foreach (var employee in employeesList)
                    {
                        message.FirstName = employee.Ime;
                        message.Lastname  = employee.Priimek;
                        message.Email     = employee.Email;

                        message.ServerTagOTP = ConfigurationManager.AppSettings["ServerTagOTP"].ToString();
                        message.Comments     = "Kriranje PDF dokumenta v PANTHEONU že 5x ni vrnilo PDF Številka naročilnice: " + sStevilkaNarocilnice;
                        message.Comments    += "<br> Preverite zakaj je tako!";

                        message.Comments += bOdpoklic ? "<br> <b>ODPOKLIC</b> " : "<br> <b>PDO Naročilo</b> ";


                        templateString = ReplaceDefaultValuesInTemplate(message, templateString);



                        SaveToSystemEmailMessage(message.Email, templateString, null, 1, emailSubject);
                    }
                }
                if (employeesList.Count == 0)
                {
                    DataTypesHelper.LogThis("V podatkovni bazi ni osebe z vlogo ADMIN (ID=2)");
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis(ex.Message);
            }
        }
        /// <summary>
        ///// Check all PDf for PDO Orders and send it through email
        ///// </summary>
        //public void CreatePDFAndSendPDOOrdersMultiple()
        //{
        //    try
        //    {
        //        string prevzetKoda = Enums.StatusOfRecall.USTVARJENO_NAROCILO.ToString();
        //        int narociloKreirano = contextPDO.StatusPovprasevanja.SingleOrDefault(so => so.Koda == prevzetKoda).StatusPovprasevanjaID;
        //        List<Narocilo_PDO> listOfPDOOrders = contextPDO.Narocilo_PDO.Where(n => n.StatusID == narociloKreirano).ToList();

        //        foreach (var item in listOfPDOOrders)
        //        {
        //            GetOrderPDFFilePDO(item.NarociloID);
        //        }

        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception("CreateAndSendOrdersMultiple Method Error! ", ex);
        //    }
        //}


        public void CheckForOrderTakeOver()
        {
            try
            {
                string prevzetoKoda      = Enums.StatusOfRecall.PREVZET.ToString();
                List <PrevzemiView> list = (from p in context.PrevzemiView select p).ToList();

                int prevzeto = context.StatusOdpoklica.SingleOrDefault(so => so.Koda == prevzetoKoda).StatusOdpoklicaID;

                foreach (var item in list)
                {
                    string[] splitRecallNums = item.Stevilka_Odpoklica.Split(';');

                    foreach (var recallNum in splitRecallNums)
                    {
                        if (item.Stevilka_Odpoklica.Contains('-')) //preverjamo če imamo še stare zapise v view-u (300-1,2,3;302-1,2,3),
                                                                   //kjer smo prevzemali vsako pozicijo posebaj. Nove zahteve so, da se zapre celoten odpoklic naenkrat,
                                                                   //zato bodo novi zaposi vsebovali (300;301;302)
                        {
                            string[] split  = recallNum.Split('-');
                            int      recall = DataTypesHelper.ParseInt(split[0]);

                            /*string[] recallPositions = split[1].Split(',');
                             * foreach (var recallPosNum in recallPositions)
                             * {
                             *  int recallPos = DataTypesHelper.ParseInt(split[0]);
                             *  var result = context.OdpoklicPozicija.SingleOrDefault(op => op.ZaporednaStevilka == recallPos && op.Odpoklic.OdpoklicStevilka == recall);
                             *
                             *  if (result != null)
                             *      context.Entry(result).Entity.StatusPrevzeto = true;
                             * }*/

                            Odpoklic odpoklic = context.Odpoklic.SingleOrDefault(o => o.OdpoklicStevilka == recall);
                            context.Entry(odpoklic).Entity.StatusID = prevzeto;

                            //if (odpoklic != null && odpoklic.OdpoklicPozicija.Count == recallPositions.Length)

                            /*else if (odpoklic != null && odpoklic.OdpoklicPozicija.Count > recallPositions.Length)
                             *  odpoklic.StatusID = context.StatusOdpoklica.SingleOrDefault(so => so.Koda == Enums.StatusOfRecall.DELNO_PREVZET.ToString()).StatusOdpoklicaID;
                             */
                        }
                        else
                        {
                            int      recall   = DataTypesHelper.ParseInt(recallNum);
                            Odpoklic odpoklic = context.Odpoklic.SingleOrDefault(o => o.OdpoklicStevilka == recall);
                            context.Entry(odpoklic).Entity.StatusID = prevzeto;
                        }
                    }
                }
                context.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception("CheckForOrderTakeOver Method Error! ", ex);
            }
        }
Exemple #10
0
        public void CreateEmailForSupplierOrder(OrderPDOFullModel order)
        {
            StreamReader reader = null;

            try
            {
                //DataTypesHelper.LogThis("*****IN Method ProcessEventMessage*****");

                string emailSubject    = SystemEmailMessageResource.res_22;
                string templatePathRez = (AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["SUPPLIER_MAIL_ORDER"].ToString()).Replace("\"", "\\");
                string templatePath    = (ConfigurationManager.AppSettings["SUPPLIER_MAIL_ORDER"].ToString()).Replace("\"", "\\");
                string rootURL         = ConfigurationManager.AppSettings["ServerTagCarrierPage"].ToString();
                DataTypesHelper.LogThis(AppDomain.CurrentDomain.BaseDirectory);

                var Dobavitelj = context.Stranka_PDO.Where(s => s.StrankaID == order.StrankaDobaviteljID).FirstOrDefault();

                CarrierMailModel message = null;

                if (Dobavitelj != null)
                {
                    templatePath    = templatePath.Replace("XXX", Dobavitelj.Jeziki.Koda.ToString());
                    templatePathRez = templatePathRez.Replace("XXX", Dobavitelj.Jeziki.Koda.ToString());

                    if (!String.IsNullOrEmpty(Dobavitelj.Email))//TODO: kaj pa če ima stranka vpisanih več mail-ov
                    {
                        DataTypesHelper.LogThis("Send order to email: " + Dobavitelj.Email);
                        message = new CarrierMailModel();

                        SetLanguageContentEmail(message, Dobavitelj.Jeziki.Koda);

                        message.AdditionalText = message.AdditionalText + order.NarociloID.ToString();
                        message.CarrierName    = Dobavitelj.NazivPrvi;
                        message.Email          = Dobavitelj.Email;


                        templatePath = File.Exists(templatePath) ? templatePath : templatePathRez;
                        reader       = new StreamReader(templatePath);
                        string templateString = reader.ReadToEnd();
                        templateString = ReplaceDefaultValuesInTemplate(message, templateString);

                        SaveToSystemEmailMessage(message.Email, templateString, null, 1, message.SubjectText, order.P_TransportOrderPDFDocPath);
                    }
                    else
                    {
                        throw new Exception("Stranka " + Dobavitelj.NazivPrvi + "nima vpisanega elektrnoskega naslova!");
                    }
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis(ex.Message);
            }
        }
Exemple #11
0
 public void UpdateSystemMessageEvents(SystemMessageEvents message)
 {
     try
     {
         DataTypesHelper.LogThis("UPDATING SystemMessageEvents status.");
         var original = context.SystemMessageEvents.Where(s => s.SystemMessageEventID == message.SystemMessageEventID).FirstOrDefault();
         context.Entry(original).CurrentValues.SetValues(message);
         context.SaveChanges();
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Exemple #12
0
        public void OnTimer(object sender, System.Timers.ElapsedEventArgs args)
        {
            // TODO: Insert monitoring activities here.
            DataTypesHelper.LogThis(args.SignalTime.ToLongTimeString() + "\n");
            try
            {
                //TODO: Preveri tabelo Avtomatika in prenesi zapise v SystemMessageEvents.
                if (timeToStartAvtomatika.CompareTo(args.SignalTime) <= 0)
                {
                    systemMessageEventsRepo.GetUnProcessedRecordsAvtomatika();
                    timeToStartAvtomatika = args.SignalTime;
                    timeToStartAvtomatika = timeToStartAvtomatika.AddMinutes(Convert.ToDouble(ConfigurationManager.AppSettings["TimeIntervalAvtomatika"].ToString()));//every 3 min
                    DataTypesHelper.LogThis("Current time: " + args.SignalTime.ToLongTimeString() + "\n");
                    DataTypesHelper.LogThis("Next start at: " + timeToStartAvtomatika.ToLongTimeString() + "\n");
                }

                systemMessageEventsRepo.GetEventsWithNoReportForMeeting();
                systemMessageEventsRepo.GetEventsWithNoPreparationForMeeting();

                foreach (SystemMessageEvents item in systemMessageEventsRepo.GetUnProcessedMesseges())
                {
                    if (item.Code == Enums.SystemMessageEventCodes.NewMessage.ToString())
                    {
                        systemMessageEventsRepo.ProcessNewMessage(item);
                    }
                    else if (item.Code == Enums.SystemMessageEventCodes.AUTO.ToString())
                    {
                        systemMessageEventsRepo.ProcessAutoMessage(item);
                    }
                    else if (item.Code == Enums.SystemMessageEventCodes.EVENT_DOGODEK.ToString())
                    {
                        systemMessageEventsRepo.ProcessEventMessage(item);
                    }
                    else if (item.Code == Enums.SystemMessageEventCodes.EVENT_PRIPRAVA_OPOZORILO.ToString())
                    {
                        systemMessageEventsRepo.ProcessEventMessage(item, Enums.SystemMessageEventCodes.EVENT_PRIPRAVA_OPOZORILO);
                    }
                    else if (item.Code == Enums.SystemMessageEventCodes.EVENT_POROCILO_OPOZORILO.ToString())
                    {
                        systemMessageEventsRepo.ProcessEventMessage(item, Enums.SystemMessageEventCodes.EVENT_POROCILO_OPOZORILO);
                    }
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis(ex.Message + "\n" + ex.InnerException != null ? ex.InnerException.Message : "" + "\n" + ex.StackTrace);
            }
        }
        public IHttpActionResult SaveInquiryPurchase([FromBody] object inquiryData)
        {
            WebResponseContentModel <InquiryFullModel> model = null;

            try
            {
                model = JsonConvert.DeserializeObject <WebResponseContentModel <InquiryFullModel> >(inquiryData.ToString());

                DataTypesHelper.LogThis("SaveInquiryPurchase : " + model.Content.StatusPovprasevanja.Koda.ToString());

                if (model.Content != null)
                {
                    if (model.Content.PovprasevanjeID > 0)//We update existing record in DB
                    {
                        inquiryRepo.SaveInquiry(model.Content);
                        // send email to all grafolit contacts = Nabava
                        DataTypesHelper.LogThis("Generate mail for Purchase dept : " + model.Content.StatusPovprasevanja.Koda.ToString());

                        if (model.Content.StatusPovprasevanja.Koda == Enums.StatusOfInquiry.POSLANO_V_NABAVO.ToString())
                        {
                            var             employee      = employeeRepo.GetEmployeeByID(model.Content.PovprasevanjeOddalID);
                            string          sGrafolitDept = ConfigurationManager.AppSettings["PantheonCreateOrderDefBuyer"].ToString();
                            ClientFullModel cfmGrafolit   = clientPdoRepo.GetClientByName(sGrafolitDept);

                            DataTypesHelper.LogThis("Generate mail for Purchase dept");
                            messageEventsRepo.CreateEmailForGrafolitPurcaheDept(cfmGrafolit, employee, model.Content);
                        }
                    }

                    model.IsRequestSuccesful = true;
                }
                else
                {
                    model.IsRequestSuccesful = false;
                    model.ValidationError    = ValidationExceptionError.res_09;
                }
            }
            catch (Exception ex)
            {
                model.IsRequestSuccesful = false;
                model.ValidationError    = ExceptionValidationHelper.GetExceptionSource(ex);
                return(Json(model));
            }

            return(Json(model));
        }
Exemple #14
0
        protected override void OnStart(string[] args)
        {
            try
            {
                /*System.Timers.Timer timer = new System.Timers.Timer();
                 * timer.Interval = Convert.ToDouble(ConfigurationManager.AppSettings["TimeInterval"].ToString()); // every 6min
                 * timer.Elapsed += new System.Timers.ElapsedEventHandler(this.OnTimer);
                 * timer.Start();*/

                this.ScheduleService();
            }
            catch (Exception e)
            {
                DataTypesHelper.LogThis(e.Message);
                throw;
            }
        }
Exemple #15
0
 public void GetEventsWithNoReportForMeeting()
 {
     try
     {
         DataTypesHelper.LogThis("*****IN GetEventsWithNoReportForMeeting*****");
         int reportDeadline = int.Parse(ConfigurationManager.AppSettings["DeadlineForReportInDays"].ToString());
         DataTypesHelper.LogThis("*****AFTER ConfigurationManager.AppSettings 1 *********");
         int notifyBeforeDeadline = reportDeadline - int.Parse(ConfigurationManager.AppSettings["NotificationBeforeReportDeadlineInDays"].ToString());
         DataTypesHelper.LogThis("*****AFTER ConfigurationManager.AppSettings 1 *********");
         string tipDogodka = Enums.EventMeetingType.POROCILO.ToString();
         var    query      = from dogodek in context.Dogodek
                             where !context.DogodekSestanek.Any(ds => (ds.DogodekID == dogodek.idDogodek) && (ds.Tip.Equals(tipDogodka)))
                             select new EventFullModel
         {
             idDogodek      = dogodek.idDogodek,
             tsIDOsebe      = dogodek.tsIDOsebe.HasValue ? dogodek.tsIDOsebe.Value : 0,
             DatumOtvoritve = dogodek.DatumOtvoritve.Value
         };
         DataTypesHelper.LogThis("*****IN GetEventsWithNoReportForMeeting count: *****" + query.ToList().Count.ToString());
         foreach (var item in query.ToList())
         {
             DateTime dateNotifyBeforeDeadline = item.DatumOtvoritve.AddDays(notifyBeforeDeadline);                  // datum ki je 7 dni pred rokom
             DateTime dateDeadline             = item.DatumOtvoritve.AddDays(reportDeadline);                        //datum ki je rok poteka
             if (DateTime.Now.CompareTo(dateNotifyBeforeDeadline) >= 0 && DateTime.Now.CompareTo(dateDeadline) <= 0) //če je trenutni datum med zgraj navedenima datuma
             {
                 CreateSystemMessageEventsForEvent(item, Enums.SystemMessageEventCodes.EVENT_POROCILO_OPOZORILO);
             }
             else if (DateTime.Now.CompareTo(dateDeadline) > 0 && DateTime.Now.CompareTo(dateDeadline.AddDays(7)) <= 0)// če na dan roka še ni poročila se od datuma roka +7 dni pošilja mail zaposlenemu in nadrejenemu
             {
                 CreateSystemMessageEventsForEvent(item, Enums.SystemMessageEventCodes.EVENT_POROCILO_OPOZORILO_NADREJENI);
             }
             else if (DateTime.Now.CompareTo(dateDeadline.AddDays(7)) > 0 && DateTime.Now.CompareTo(dateDeadline.AddDays(14)) <= 0)//če po 7 dneh od datuma roka še vedno ni poročila se pošlje mail še direktorju - je potrebno omejit zgornji datum? (v tem primeru je zgornji datum 14 dni od datuma zapadlosti dogodka)
             {
                 CreateSystemMessageEventsForEvent(item, Enums.SystemMessageEventCodes.EVENT_POROCILO_OPOZORILO_NADREJENI_DIREKTOR);
             }
         }
         context.SaveChanges();
         DataTypesHelper.LogThis("*****IN GetEventsWithNoReportForMeeting AFTER SAVING: *****");
     }
     catch (Exception ex)
     {
         DataTypesHelper.LogThis("*****IN GetEventsWithNoReportForMeeting ERROR: *****" + ex.Message);
         throw new Exception(ValidationExceptionError.res_08, ex);
     }
 }
Exemple #16
0
        private void CreateSystemMessageEventsForEvent(EventFullModel dogodek, Enums.SystemMessageEventCodes eventType)
        {
            DataTypesHelper.LogThis("*****CREATING NEW SYSTEMMESSGE EVENT: event type = *****" + eventType.ToString());
            SystemMessageEvents newEvent = new SystemMessageEvents();

            newEvent.SystemMessageEventID = 0;
            newEvent.Status   = (int)Enums.SystemMessageEventStatus.UnProcessed;
            newEvent.MasterID = dogodek.idDogodek;
            newEvent.Code     = eventType.ToString();
            newEvent.ts       = DateTime.Now;

            if (dogodek.tsIDOsebe != 0)
            {
                newEvent.tsIDOsebe = dogodek.tsIDOsebe;
            }

            context.SystemMessageEvents.Add(newEvent);
        }
        //public string GetOrderPDFFilePDO(int iPDOOrderID)
        //{
        //    try
        //    {
        //        OrderPDOFullModel rfm = orderPDORepo.GetOrderByID(iPDOOrderID);
        //        string curFile = "";
        //        string sResult = "";

        //        if (rfm != null)
        //        {
        //            rfm.NarociloStevilka_P = (rfm.NarociloStevilka_P != null) ? rfm.NarociloStevilka_P : "xxx";

        //            // če je 5x neuspešno, potem se pošlje mail Daniju
        //            if ((rfm.P_UnsuccCountCreatePDFPantheon >= 5) && (rfm.P_SendWarningToAdmin == 0))
        //            {

        //                messageRepo.CreateEmailForAdmin_NoPDFForOrder("", rfm.NarociloStevilka_P.ToString(), rfm.P_TransportOrderPDFName, false);
        //                rfm.P_SendWarningToAdmin = 1;
        //                return "NOT_EXIST";
        //            }
        //            else if (rfm.P_SendWarningToAdmin == 1)
        //            {
        //                DataTypesHelper.LogThis("Za naročilo št. " + rfm.NarociloStevilka_P + " ni bilo kreirano PDF in je bil poslal že mail administraotrju.");
        //                return "NOT_EXIST";
        //            }

        //            curFile = ((rfm.P_TransportOrderPDFDocPath != null) && (rfm.P_TransportOrderPDFDocPath.Length > 0)) ? rfm.P_TransportOrderPDFDocPath : "";

        //            sResult = File.Exists(curFile) ? "EXIST" : "NOT_EXIST";
        //        }

        //        if (sResult != "EXIST")
        //        {
        //            LaunchPantheonCreatePDF();
        //            rfm.P_UnsuccCountCreatePDFPantheon++;
        //            rfm.P_LastTSCreatePDFPantheon = DateTime.Now;
        //        }
        //        else
        //        {
        //            InquiryStatus stat = orderPDORepo.GetPovprasevanjaStatusByCode(Enums.StatusOfInquiry.KREIRAN_POSLAN_PDF.ToString());
        //            if (stat != null)
        //            {
        //                rfm.StatusID = stat.StatusPovprasevanjaID;
        //                rfm.P_GetPDFOrderFile = DateTime.Now;
        //                // Create mail for prevoznik
        //                messageRepoPDO.CreateEmailForSupplierOrder(rfm);
        //            }

        //        }

        //        orderPDORepo.SaveOrder(rfm, true, false);

        //        return sResult;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}


        public void CreateOrderTransport(CreateOrderModel model)
        {
            try
            {
                RecallFullModel rfm = recallRepo.GetRecallFullModelByID(model.RecallID);

                if (rfm.P_CreateOrder.Year < 2000)
                {
                    DataTypesHelper.LogThis("cREATE oRDER xml");
                    string xml = GetXMLForOrder(model);
                    DataTypesHelper.LogThis(xml);

                    DataTypesHelper.LogThis("Run Create order procedure _upJM_CreateSupplierOrder");
                    // run store procedure _upJM_CreateSupplierOrder
                    CreateOrderDocument coData = sqlFunctionRepo.GetOrderDocumentData(xml);


                    DataTypesHelper.LogThis("Update Create order Recall Data");
                    // update odpoklic - uspešno kreirana naročilnica v pantheonu


                    RecallStatus stat = recallRepo.GetRecallStatusByCode(Enums.StatusOfRecall.USTVARJENO_NAROCILO.ToString());
                    if (stat != null)
                    {
                        rfm.StatusID = stat.StatusOdpoklicaID;
                    }

                    rfm.P_UnsuccCountCreatePDFPantheon = 0;
                    rfm.P_CreateOrder              = DateTime.Now;
                    rfm.P_TransportOrderPDFName    = coData.PDFFile.ToString();
                    rfm.P_TransportOrderPDFDocPath = coData.ExportPath.ToString();
                    recallRepo.SaveRecall(rfm, true);

                    //DataTypesHelper.LogThis("Launch Create PDF Pantheon.exe");
                    // launch Pantheon EXE command
                    //LaunchPantheonCreatePDF();
                    DataTypesHelper.LogThis("Finish CreateOrderTransport");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #18
0
        private void ScheduleService()
        {
            try
            {
                timerSchedular = new Timer(new TimerCallback(TimerScheduleCallback));
                //Set the Default Time.
                DateTime scheduledTime = DateTime.MinValue;

                string scheduleMode = System.Configuration.ConfigurationManager.AppSettings["ScheduleMode"].ToString();

                if (scheduleMode == "Dnevno")
                {
                    scheduledTime = DateTime.Parse(System.Configuration.ConfigurationManager.AppSettings["ScheduledTime"]);
                    if (DateTime.Now > scheduledTime)
                    {
                        //If Scheduled Time is passed set Schedule for the next day.
                        scheduledTime = scheduledTime.AddDays(1);
                    }
                }
                else if (scheduleMode == "Interval")
                {
                    int intervalMinutes = Convert.ToInt32(ConfigurationManager.AppSettings["IntervalMin"]);
                    scheduledTime = DateTime.Now.AddMinutes(intervalMinutes);

                    if (DateTime.Now > scheduledTime)
                    {
                        //If Scheduled Time is passed set Schedule for the next Interval.
                        scheduledTime = scheduledTime.AddMinutes(intervalMinutes);
                    }
                }

                TimeSpan timeSpan = scheduledTime.Subtract(DateTime.Now);
                //Get the difference in Minutes between the Scheduled and Current Time.
                int dueTime = Convert.ToInt32(timeSpan.TotalMilliseconds);

                //Change the Timer's Due Time.
                timerSchedular.Change(dueTime, Timeout.Infinite);
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis(ex.Message + ex.StackTrace);
            }
        }
Exemple #19
0
        private void TimerScheduleCallback(object e)
        {
            try
            {
                DataTypesHelper.LogThis("*****TimerScheduleCallback start*****");
                systemMessageEventsRepo.GetEventsWithNoReportForMeeting();

                systemMessageEventsRepo.GetEventsWithNoPreparationForMeeting();

                DataTypesHelper.LogThis("*****Before Firing Method GetUnProcessedRecordsAvtomatika*****");
                systemMessageEventsRepo.GetUnProcessedRecordsAvtomatika();
                DataTypesHelper.LogThis("*****After Firing Method GetUnProcessedRecordsAvtomatika*****");

                foreach (SystemMessageEvents item in systemMessageEventsRepo.GetUnProcessedMesseges())
                {
                    DataTypesHelper.LogThis("*****in foreach GetUnProcessedMesseges - instance values: *****" + item.Code);
                    if (item.Code == Enums.SystemMessageEventCodes.NewMessage.ToString())
                    {
                        systemMessageEventsRepo.ProcessNewMessage(item);
                    }
                    else if (item.Code == Enums.SystemMessageEventCodes.AUTO.ToString())
                    {
                        //DataTypesHelper.LogThis("*****Before ProcesAutoMesages*****");
                        systemMessageEventsRepo.ProcessAutoMessage(item);
                        //DataTypesHelper.LogThis("*****After ProcesAutoMesages*****");
                    }
                    else if (item.Code == Enums.SystemMessageEventCodes.EVENT_DOGODEK.ToString())
                    {
                        systemMessageEventsRepo.ProcessEventMessage(item);
                    }
                    else if (systemMessageEventsRepo.EventPreparationOrReport(item.Code))
                    {
                        systemMessageEventsRepo.ProcessEventMessage(item, (Enums.SystemMessageEventCodes)Enum.Parse(typeof(Enums.SystemMessageEventCodes), item.Code, true));
                    }
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis(ex.Message + "\n" + ex.InnerException != null ? ex.InnerException.Message : "" + "\n" + ex.StackTrace);
            }

            this.ScheduleService();
        }
Exemple #20
0
        public void CreateEmailForUserCreateNewCodeForProduct(CreateNewCodeMailModel model)
        {
            StreamReader reader = null;

            try
            {
                //DataTypesHelper.LogThis("*****IN Method ProcessEventMessage*****");

                string emailSubject = SystemEmailMessageResource.res_23;
                string templatePath = (AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["USER_MAIL_NOZ"].ToString()).Replace("\"", "\\");
                string rootURL      = ConfigurationManager.AppSettings["ServerURL_NOZ"].ToString();
                DataTypesHelper.LogThis(AppDomain.CurrentDomain.BaseDirectory);

                var user = context.Osebe_NOZ.Where(o => o.OsebaID == model.UserId).FirstOrDefault();

                if (user != null)
                {
                    if (!String.IsNullOrEmpty(user.Email))//TODO: kaj pa če ima stranka vpisanih več mail-ov
                    {
                        model.Email        = user.Email;
                        model.EmployeeName = user.Ime + " " + user.Priimek;
                        model.RootURL      = rootURL;

                        reader = new StreamReader(templatePath);
                        string templateString = reader.ReadToEnd();
                        templateString = ReplaceDefaultValuesInTemplate(model, templateString);

                        SaveToSystemEmailMessage(user.Email, templateString, null, 1, emailSubject);
                    }
                    else
                    {
                        throw new Exception("Oseba " + user.Ime + " " + user.Priimek + " nima vpisanega elektrnoskega naslova!");
                    }
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis(ex.Message);
            }
        }
Exemple #21
0
        public MessageEmailService()
        {
            try
            {
                InitializeComponent();

                kernel = new StandardKernel();

                kernel.Bind <ISystemMessageEventsRepository>().To <SystemMessageEventsRepository>();
                kernel.Bind <IEventRepository>().To <EventRepository>();
                kernel.Bind <IEmployeeRepository>().To <EmployeeRepository>();
                kernel.Bind <IPostRepository>().To <PostRepository>();

                systemMessageEventsRepo = kernel.Get <ISystemMessageEventsRepository>();

                timeToStartAvtomatika = DateTime.Now;
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis(ex.Message);
            }
        }
Exemple #22
0
        public List <OrderPositionModelNew> GetListOfOrderNumber10()
        {//TODO: pridobimo še vse pozicije iz tabele lastna zaloga če je izbran dobavitelj iz naše tabele stranka_otp i da je tipa SKLADISCE
            try
            {
                DataTypesHelper.LogThis("GetListOfOrderNumber10");


                var query = from np in context.SeznamPozicijNarocilnic10ZaOdpoklic()
                            select new OrderPositionModelNew
                {
                    Status            = np.Status,
                    ZeljeniRokDobave  = np.ZeljeniRokDobave.HasValue ? np.ZeljeniRokDobave.Value : DateTime.MinValue,
                    Narocilnica       = np.StevilkaDokumenta,
                    Kupec             = np.Stranka,
                    Dobavitelj        = np.Dobavitelj == null ? "" : np.Dobavitelj,
                    Kategorija        = np.Kategorija == null ? "" : np.Kategorija,
                    Ident             = np.KodaArtikla,
                    Artikel           = np.NazivArtikla,
                    Naroceno          = np.NarocenaKolicina,
                    EnotaMere         = np.EnotaMere,
                    PotrjeniRokDobave = np.PotrjeniRokDobave.HasValue ? np.PotrjeniRokDobave.Value : DateTime.MinValue
                };
                List <OrderPositionModelNew> list = query.ToList();

                int count = 1;
                foreach (var item in list)
                {
                    item.tempID = count;
                    count++;
                }

                return(list);
            }
            catch (Exception ex)
            {
                throw new Exception(ValidationExceptionError.res_06, ex);
            }
        }
        public IHttpActionResult SaveTender([FromBody] object tenderData)
        {
            WebResponseContentModel <TenderFullModel> model = null;

            try
            {
                DataTypesHelper.LogThis("Start - Controler");

                model = JsonConvert.DeserializeObject <WebResponseContentModel <TenderFullModel> >(tenderData.ToString());

                if (model.Content != null)
                {
                    if (model.Content.RazpisID > 0)//We update existing record in DB
                    {
                        tenderRepo.SaveTender(model.Content);
                    }
                    else // We add and save new recod to DB
                    {
                        model.Content.RazpisID = tenderRepo.SaveTender(model.Content, false);
                    }

                    model.IsRequestSuccesful = true;
                }
                else
                {
                    model.IsRequestSuccesful = false;
                    model.ValidationError    = ValidationExceptionError.res_09;
                }
            }
            catch (Exception ex)
            {
                model.IsRequestSuccesful = false;
                model.ValidationError    = ExceptionValidationHelper.GetExceptionSource(ex);
                return(Json(model));
            }

            return(Json(model));
        }
Exemple #24
0
        public CreateOrderDocument GetOrderDocumentData(string OrderDocXML)
        {
            CreateOrderDocument _coData = new CreateOrderDocument();


            ObjectParameter opExportPath  = new ObjectParameter("p_cExportPath", "");
            ObjectParameter opPDFFileName = new ObjectParameter("p_cKey", "");
            ObjectParameter opErrorDesc   = new ObjectParameter("p_cError", "");



            var obj = context.DodajPantheonDokument(OrderDocXML, opExportPath, opPDFFileName, opErrorDesc);


            string sExportPath  = Convert.ToString(opExportPath.Value);
            string sPDFFileName = Convert.ToString(opPDFFileName.Value);
            string sErrorDesc   = Convert.ToString(opErrorDesc.Value);

            DataTypesHelper.LogThis("Številka naročilnice: " + sPDFFileName);

            if (sErrorDesc.Length > 0)
            {
                DataTypesHelper.LogThis("Error create naročilnica : " + sErrorDesc);
            }

            if (sErrorDesc.Length > 0)
            {
                throw new Exception(ValidationExceptionError.res_28 + "<br><br>" + sErrorDesc);
            }

            _coData.ExportPath = sExportPath;
            _coData.PDFFile    = sPDFFileName;
            _coData.ErrorDesc  = sErrorDesc;


            return(_coData);
        }
Exemple #25
0
        public IHttpActionResult SaveRecall([FromBody] object recallData)
        {
            WebResponseContentModel <RecallFullModel> model = null;

            try
            {
                DataTypesHelper.LogThis("SaveRecall : (model.Content.OdpoklicID) - Začetek!");

                model = JsonConvert.DeserializeObject <WebResponseContentModel <RecallFullModel> >(recallData.ToString());

                if (model.Content != null)
                {
                    var employee = employeeRepo.GetEmployeeByID(model.Content.UserID);

                    if (model.Content.OdpoklicID > 0)//We update existing record in DB
                    {
                        DataTypesHelper.LogThis("SaveRecall1 : (model.Content.OdpoklicID) :" + model.Content.OdpoklicID.ToString());
                        recallRepo.SaveRecall(model.Content);

                        RecallStatus stat = recallRepo.GetRecallStatusByCode(Enums.StatusOfRecall.V_ODOBRITEV.ToString());
                        if (model.Content.RecallStatusChanged && (stat != null && model.Content.StatusID == stat.StatusOdpoklicaID))
                        {
                            //messageEventsRepo.CreateEmailForRecallStatusChanged(model.Content);
                            DataTypesHelper.LogThis("SaveRecall : " + stat.Koda);
                            messageEventsRepo.CreateEmailForLeaderToApproveRecall(model.Content);
                        }

                        stat = recallRepo.GetRecallStatusByCode(Enums.StatusOfRecall.RAZPIS_PREVOZNIK.ToString());
                        if (model.Content.RecallStatusChanged && (stat != null && model.Content.StatusID == stat.StatusOdpoklicaID))
                        {
                            DataTypesHelper.LogThis("SaveRecall : " + stat.Koda);
                            messageEventsRepo.CreateEmailForCarriers(model.Content, employee);
                        }
                    }
                    else // We add and save new recod to DB
                    {
                        DataTypesHelper.LogThis("SaveRecall2 : (model.Content.OdpoklicID) :" + model.Content.OdpoklicID.ToString());
                        model.Content.OdpoklicID = recallRepo.SaveRecall(model.Content, false);

                        RecallStatus stat = recallRepo.GetRecallStatusByCode(Enums.StatusOfRecall.V_ODOBRITEV.ToString());
                        if (stat != null && model.Content.StatusID == stat.StatusOdpoklicaID)
                        {
                            DataTypesHelper.LogThis("SaveRecall2 : " + stat.Koda);
                            messageEventsRepo.CreateEmailForLeaderToApproveRecall(model.Content);
                        }

                        stat = recallRepo.GetRecallStatusByCode(Enums.StatusOfRecall.RAZPIS_PREVOZNIK.ToString());
                        if (model.Content.RecallStatusChanged && (stat != null && model.Content.StatusID == stat.StatusOdpoklicaID))
                        {
                            DataTypesHelper.LogThis("SaveRecall3 : " + stat.Koda);
                            messageEventsRepo.CreateEmailForCarriers(model.Content, employee);
                        }
                    }

                    model.IsRequestSuccesful = true;
                }
                else
                {
                    model.IsRequestSuccesful = false;
                    model.ValidationError    = ValidationExceptionError.res_09;
                }
            }
            catch (Exception ex)
            {
                model.IsRequestSuccesful = false;
                model.ValidationError    = ExceptionValidationHelper.GetExceptionSource(ex);
                return(Json(model));
            }

            return(Json(model));
        }
Exemple #26
0
        private void WriteMetaDataInCHM()
        {
            SetStatus("Writing Columns...");
            ColumnsHelper.WriteColumns();
            backgroundWorker2.ReportProgress(5, ObjectTypes.Columns);

            SetStatus("Writing ForeignKeys...");
            ForeignKeysHelper.WriteForeignKeys();
            backgroundWorker2.ReportProgress(10, ObjectTypes.ForeignKeys);

            SetStatus("Writing IndexColumns...");
            IndexColumnsHelper.WriteIndexColumns();
            backgroundWorker2.ReportProgress(15, ObjectTypes.IndexColumns);

            SetStatus("Writing Indexes...");
            IndexesHelper.WriteIndexes();
            backgroundWorker2.ReportProgress(20, ObjectTypes.Indexes);

            SetStatus("Writing Tables...");
            TablesHelper.WriteTables();
            backgroundWorker2.ReportProgress(25, ObjectTypes.Tables);

            SetStatus("Writing ViewColumns...");
            ViewColumnsHelper.WriteViewColumns();
            backgroundWorker2.ReportProgress(30, ObjectTypes.ViewColumns);

            SetStatus("Writing Views...");
            ViewsHelper.WriteViews();
            backgroundWorker2.ReportProgress(35, ObjectTypes.Views);

            SetStatus("Writing ProcedureParameters...");
            ProcedureParametersHelper.WriteProcedureParameters();
            backgroundWorker2.ReportProgress(40, ObjectTypes.ProcedureParameters);

            SetStatus("Writing Procedures...");
            ProceduresHelper.WriteProcedures();
            backgroundWorker2.ReportProgress(45, ObjectTypes.Procedures);

            SetStatus("Writing Triggers...");
            SMOHelper.TriggersHelper.WriteTriggers();
            backgroundWorker2.ReportProgress(50, ObjectTypes.Triggers);

            SetStatus("Writing UserDefinedDataTypes...");
            SMOHelper.UserDefinedDataTypesHelper.WriteUserDefinedDataTypes();
            backgroundWorker2.ReportProgress(55, ObjectTypes.UserDefinedDataTypes);

            SetStatus("Writing InstanceInformation...");
            InstanceInformationHelper.WriteInstanceInformation();
            backgroundWorker2.ReportProgress(60, ObjectTypes.InstanceInformation);

            SetStatus("Writing DataSourceInformation...");
            DataSourceInformationHelper.WriteDataSourceInformation();
            backgroundWorker2.ReportProgress(65, ObjectTypes.DataSourceInformation);

            SetStatus("Writing DataTypes...");
            DataTypesHelper.WriteDataTypes();
            backgroundWorker2.ReportProgress(70, ObjectTypes.DataTypes);

            SetStatus("Writing Restrictions...");
            RestrictionsHelper.WriteRestrictions();
            backgroundWorker2.ReportProgress(75, ObjectTypes.Restrictions);

            SetStatus("Writing ReservedWords...");
            ReservedWordsHelper.WriteReservedWords();
            backgroundWorker2.ReportProgress(80, ObjectTypes.ReservedWords);

            SetStatus("Writing Users...");
            UsersHelper.WriteUsers();
            backgroundWorker2.ReportProgress(85, ObjectTypes.Users);
        }
Exemple #27
0
        private void GetMetaData()
        {
            SetStatus("Fetching Columns...");
            ColumnsHelper.GetColumns();
            backgroundWorker1.ReportProgress(5, ObjectTypes.Columns);

            SetStatus("Fetching ForeignKeys...");
            ForeignKeysHelper.GetForeignKeys();
            backgroundWorker1.ReportProgress(10, ObjectTypes.ForeignKeys);

            SetStatus("Fetching IndexColumns...");
            IndexColumnsHelper.GetIndexColumns();
            backgroundWorker1.ReportProgress(15, ObjectTypes.IndexColumns);

            SetStatus("Fetching Indexes...");
            IndexesHelper.GetIndexes();
            backgroundWorker1.ReportProgress(20, ObjectTypes.Indexes);

            SetStatus("Fetching Tables...");
            TablesHelper.GetTables();
            backgroundWorker1.ReportProgress(25, ObjectTypes.Tables);

            SetStatus("Fetching ViewColumns...");
            ViewColumnsHelper.GetViewColumns();
            backgroundWorker1.ReportProgress(30, ObjectTypes.ViewColumns);

            SetStatus("Fetching Views...");
            ViewsHelper.GetViews();
            backgroundWorker1.ReportProgress(35, ObjectTypes.Views);

            SetStatus("Fetching ProcedureParameters...");
            ProcedureParametersHelper.GetProcedureParameters();
            backgroundWorker1.ReportProgress(40, ObjectTypes.ProcedureParameters);

            SetStatus("Fetching Procedures...");
            ProceduresHelper.GetProcedures();
            backgroundWorker1.ReportProgress(45, ObjectTypes.Procedures);

            SetStatus("Fetching Triggers...");
            SMOHelper.TriggersHelper.GetTriggers(Utility.DatabaseName);
            backgroundWorker1.ReportProgress(50, ObjectTypes.Triggers);

            SetStatus("Fetching UserDefinedDataTypes...");
            SMOHelper.UserDefinedDataTypesHelper.GetUserDefinedDataTypes(Utility.DatabaseName);
            backgroundWorker1.ReportProgress(55, ObjectTypes.UserDefinedDataTypes);

            SetStatus("Fetching InstanceInformation...");
            InstanceInformationHelper.GetInstanceInformation();
            backgroundWorker1.ReportProgress(60, ObjectTypes.InstanceInformation);

            SetStatus("Fetching DataSourceInformation...");
            DataSourceInformationHelper.GetDataSourceInformation();
            backgroundWorker1.ReportProgress(65, ObjectTypes.DataSourceInformation);

            SetStatus("Fetching DataTypes...");
            DataTypesHelper.GetDataTypes();
            backgroundWorker1.ReportProgress(70, ObjectTypes.DataTypes);

            SetStatus("Fetching Restrictions...");
            RestrictionsHelper.GetRestrictions();
            backgroundWorker1.ReportProgress(75, ObjectTypes.Restrictions);

            SetStatus("Fetching ReservedWords...");
            ReservedWordsHelper.GetReservedWords();
            backgroundWorker1.ReportProgress(80, ObjectTypes.ReservedWords);

            SetStatus("Fetching Users...");
            UsersHelper.GetUsers();
            backgroundWorker1.ReportProgress(85, ObjectTypes.Users);
        }
Exemple #28
0
        public DashboardDataModel GetDashboardData()
        {
            try
            {
                var    model               = new DashboardDataModel();
                string approvedStat        = Enums.StatusOfRecall.POTRJEN.ToString();
                string rejectedStat        = Enums.StatusOfRecall.ZAVRNJEN.ToString();
                string needApprovalStat    = Enums.StatusOfRecall.V_ODOBRITEV.ToString();
                string clientTypeTransport = Enums.TypeOfClient.PREVOZNIK.ToString();
                string clientTypeWarehouse = Enums.TypeOfClient.SKLADISCE.ToString();
                string overtake            = Enums.StatusOfRecall.PREVZET.ToString();
                string partialOvertake     = Enums.StatusOfRecall.DELNO_PREVZET.ToString();

                model.AllRecalls      = context.Odpoklic.Count();
                model.ApprovedRecalls = context.Odpoklic.Where(o => o.StatusOdpoklica.Koda == approvedStat).Count();
                model.RejectedRecalls = context.Odpoklic.Where(o => o.StatusOdpoklica.Koda == rejectedStat).Count();
                model.NeedsApproval   = context.Odpoklic.Where(o => o.StatusOdpoklica.Koda == needApprovalStat).Count();
                model.Routes          = context.Relacija.Count();
                model.Transporters    = context.Stranka_OTP.Where(sotp => sotp.TipStranka.Koda == clientTypeTransport).Count();
                model.OwnWarehouse    = context.Stranka_OTP.Where(sotp => sotp.TipStranka.Koda == clientTypeWarehouse).Count();

                //število odpoklicev v tekočem letu
                var query = from recalls in context.Odpoklic
                            where recalls.ts.Value.Year == DateTime.Now.Year
                            group recalls by new { month = recalls.ts.Value.Month } into groupRecall
                    select new RecallsInYear
                {
                    Month = groupRecall.Key.month,
                    Count = groupRecall.Count()
                };

                model.CurrentYearRecall = new List <object>();

                model.CurrentYearRecall.Add(new object[] {
                    "MonthName", "Št. odpoklicev"
                });

                foreach (var item in query.ToList())
                {
                    item.MonthName = DataTypesHelper.GetDateTimeMonthByNumber(item.Month);
                    model.CurrentYearRecall.Add(new object[] {
                        item.MonthName, item.Count
                    });
                }

                //število odpoklicev na zaposlenega
                var query2 = from recalls in context.Odpoklic
                             where recalls.ts.Value.Year == DateTime.Now.Year
                             group recalls by recalls.Osebe_OTP into groupRecall
                             select new RecallsInYear
                {
                    EmployeeName = groupRecall.Key.Ime + " " + groupRecall.Key.Priimek,
                    Count        = groupRecall.Count()
                };

                model.EmployeesRecallCount = new List <object>();
                model.EmployeesRecallCount.Add(new object[] {
                    "EmployeeName", "Št. odpoklicev "
                });

                foreach (var item in query2.ToList())
                {
                    model.EmployeesRecallCount.Add(new object[] {
                        item.EmployeeName, item.Count
                    });
                }

                //gledamo odpoklice za 30 dni nazaj ali odpoklice 1 leta nazaj. In vsi odpoklici morajo biti odobreni, prevzeti ali delno prevzeti.
                bool     checkForPastYear = Convert.ToBoolean(ConfigurationManager.AppSettings["RouteRecallsPastYear"].ToString());
                DateTime dateStart        = !checkForPastYear?DateTime.Now.AddDays(-30).Date : DateTime.Now.AddYears(-1).Date;

                DateTime dateEnd = DateTime.Now.Date;

                //število odpoklicev na posameznega prevoznika
                var query3 = from recalls in context.Odpoklic
                             where recalls.ts.Value >= dateStart && recalls.ts.Value <= dateEnd &&
                             (recalls.StatusOdpoklica.Koda == approvedStat || recalls.StatusOdpoklica.Koda == overtake || recalls.StatusOdpoklica.Koda == partialOvertake)
                             group recalls by recalls.Stranka_OTP1 into groupRecall
                             select new RecallsInYear
                {
                    Transporter = groupRecall.Key.NazivPrvi,
                    Count       = !checkForPastYear?groupRecall.Count() * 12 : groupRecall.Count()
                };

                model.TransporterRecallCount = new List <object>();
                model.TransporterRecallCount.Add(new object[] {
                    "Transporter", "Št. odpoklicov"
                });

                foreach (var item in query3.ToList())
                {
                    if (item.Count > 0)
                    {
                        model.TransporterRecallCount.Add(new object[] {
                            item.Transporter, item.Count
                        });
                    }
                }



                var query4 = from recalls in context.Odpoklic
                             where recalls.ts.Value >= dateStart && recalls.ts.Value <= dateEnd &&
                             (recalls.StatusOdpoklica.Koda == approvedStat || recalls.StatusOdpoklica.Koda == overtake || recalls.StatusOdpoklica.Koda == partialOvertake)
                             group recalls by recalls.Relacija into groupRecalls
                             select new RecallsInYear
                {
                    Route = groupRecalls.Key.Naziv,
                    Count = !checkForPastYear?groupRecalls.Count() * 12 : groupRecalls.Count()
                };

                model.RouteRecallCount = new List <object>();
                model.RouteRecallCount.Add(new object[] {
                    "Relacija", "Št. odpoklicov"
                });

                foreach (var item in query4.OrderByDescending(o => o.Count).Take(10).ToList())
                {
                    if (item.Count > 0)
                    {
                        model.RouteRecallCount.Add(new object[] {
                            item.Route, item.Count
                        });
                    }
                }

                var query5 = from recalls in context.Odpoklic
                             where recalls.ts.Value.Year == DateTime.Now.Year && (recalls.StatusOdpoklica.Koda == approvedStat || recalls.StatusOdpoklica.Koda == overtake || recalls.StatusOdpoklica.Koda == partialOvertake)
                             group recalls by recalls.DobaviteljNaziv into groupRecalls
                             select new RecallsInYear
                {
                    Supplier = groupRecalls.Key,
                    Count    = groupRecalls.Count()
                };

                model.SupplierRecallCount = new List <object>();
                model.SupplierRecallCount.Add(new object[] {
                    "Dobavitelj", "Št. odpoklicov"
                });

                foreach (var item in query5.OrderByDescending(o => o.Count).Take(10).ToList())
                {
                    if (item.Count > 0)
                    {
                        model.SupplierRecallCount.Add(new object[] {
                            item.Supplier, item.Count
                        });
                    }
                }


                return(model);
            }
            catch (Exception ex)
            {
                throw new Exception(ValidationExceptionError.res_27, ex);
            }
        }
Exemple #29
0
        private void SendMessages(SmtpClient client, SystemEmailMessage item = null, SystemEmailMessage_OTP otpItem = null, SystemEmailMessage_PDO pdoItem = null, SystemEmailMessage_NOZ nozItem = null)
        {
            bool isOTPitem = false;
            bool isPDOitem = false;
            bool isNOZItem = false;

            try
            {
                if (otpItem != null)
                {
                    isOTPitem = true;
                }
                else if (pdoItem != null)
                {
                    isPDOitem = true;
                }
                else if (nozItem != null)
                {
                    isNOZItem = true;
                }

                //if (String.IsNullOrEmpty(isOTPitem ? otpItem.EmailTo : (isPDOitem ? ((pdoItem.TOEmails != null && pdoItem.TOEmails.Length > 0) ? pdoItem.TOEmails : pdoItem.EmailTo) : (isNOZItem ? nozItem.EmailTo : item.EmailTo))))
                if (String.IsNullOrEmpty(isOTPitem ? otpItem.EmailTo : (isPDOitem ? pdoItem.EmailTo : (isNOZItem ? nozItem.EmailTo : item.EmailTo))))
                {
                    if (isOTPitem)
                    {
                        otpItem.Status = (int)Enums.SystemEmailMessageStatus.Processed;
                    }
                    else if (isPDOitem)
                    {
                        pdoItem.Status = (int)Enums.SystemEmailMessageStatus.Processed;
                    }
                    else if (isNOZItem)
                    {
                        pdoItem.Status = (int)Enums.SystemEmailMessageStatus.Processed;
                    }
                    else
                    {
                        item.Status = (int)Enums.SystemEmailMessageStatus.Processed;
                    }

                    DataTypesHelper.LogThis("Couldn't send email! Email to is empty");
                }
                else
                {
                    string sender = "", emailTitle = "", emailTo = "", emailSubject = "", emailBody = "";

                    if (isOTPitem)
                    {
                        DataTypesHelper.LogThis("OTP ITEM!");
                        sender = ConfigurationManager.AppSettings["SenderOTP"].ToString();
                        //sender = otpItem.EmailFrom;

                        emailTitle   = "(" + otpItem.EmailFrom + ") - " + ConfigurationManager.AppSettings["EmailTitleOTP"].ToString();
                        emailTo      = otpItem.EmailTo;
                        emailSubject = otpItem.EmailSubject;
                        emailBody    = otpItem.EmailBody;
                    }
                    else if (isPDOitem)
                    {
                        DataTypesHelper.LogThis("PDO ITEM");
                        if (Convert.ToBoolean(ConfigurationManager.AppSettings["UseUserEmailSettings"]))
                        {
                            if (pdoItem.OsebaEmailFromID.HasValue)
                            {
                                SettingsModel set = pdoSettingsRepo.GetLatestSettings();

                                string host = String.IsNullOrEmpty(set.EmailStreznik) ? pdoItem.Osebe_PDO.EmailStreznik : set.EmailStreznik;
                                //int port = 587;//set.EmailVrata > 0 ? set.EmailVrata : pdoItem.Osebe_PDO.EmailVrata.Value;
                                int port = set.EmailVrata > 0 ? set.EmailVrata : pdoItem.Osebe_PDO.EmailVrata.Value;
                                //bool sslEnable = false;//!set.EmailSifriranjeSSL ? pdoItem.Osebe_PDO.EmailSifriranjeSSL.Value : set.EmailSifriranjeSSL;
                                bool sslEnable = set.EmailSifriranjeSSL ? pdoItem.Osebe_PDO.EmailSifriranjeSSL.Value : set.EmailSifriranjeSSL;
                                //var credentials = new NetworkCredential("*****@*****.**"/*pdoItem.Osebe_PDO.Email, "Geslo123."/*pdoItem.Osebe_PDO.EmailGeslo);
                                var credentials = new NetworkCredential(pdoItem.Osebe_PDO.Email, pdoItem.Osebe_PDO.EmailGeslo);

                                client = new SmtpClient
                                {
                                    Host                  = host,
                                    Port                  = port,
                                    EnableSsl             = sslEnable,
                                    DeliveryMethod        = SmtpDeliveryMethod.Network,
                                    UseDefaultCredentials = false,
                                    Credentials           = credentials
                                };
                            }
                        }

                        string emailTitleOseba = pdoItem.Osebe_PDO != null ? pdoItem.Osebe_PDO.Ime + " " + pdoItem.Osebe_PDO.Priimek : ConfigurationManager.AppSettings["EmailTitlePDO"].ToString();;
                        sender     = pdoItem.OsebaEmailFromID != null ? pdoItem.Osebe_PDO.Email : ConfigurationManager.AppSettings["SenderPDO"].ToString();
                        emailTitle = emailTitleOseba;


                        emailTo      = pdoItem.EmailTo;
                        emailSubject = pdoItem.EmailSubject;
                        emailBody    = pdoItem.EmailBody;
                    }
                    else if (isNOZItem)
                    {
                        sender = ConfigurationManager.AppSettings["SenderNOZ"].ToString();
                        //sender = otpItem.EmailFrom;

                        //string emailTitleOseba = nozItem.Osebe_PDO != null ? pdoItem.Osebe_PDO.Ime + " " + pdoItem.Osebe_PDO.Priimek : ConfigurationManager.AppSettings["EmailTitlePDO"].ToString(); ;
                        //sender = nozItem.OsebaEmailFromID != null ? nozItem.Osebe_PDO.Email : ConfigurationManager.AppSettings["SenderNOZ"].ToString();


                        emailTitle   = "(" + nozItem.EmailFrom + ") - " + ConfigurationManager.AppSettings["EmailTitleNOZ"].ToString();
                        emailTo      = nozItem.EmailTo;
                        emailSubject = nozItem.EmailSubject;
                        emailBody    = nozItem.EmailBody;
                    }
                    else
                    {
                        sender       = ConfigurationManager.AppSettings["Sender"].ToString();
                        emailTitle   = ConfigurationManager.AppSettings["EmailTitle"].ToString();
                        emailTo      = item.EmailTo;
                        emailSubject = item.EmailSubject;
                        emailBody    = item.EmailBody;
                    }



                    MailMessage message = new MailMessage();

                    // preverimo če je emailTO prazen pomeni, da vazame list pošiljateljev
                    if (emailTo.Length > 0)
                    {
                        if (emailTo != null && emailTo.Length > 0)
                        {
                            string[] splitTOEmails = emailTo.Split(';');
                            if (splitTOEmails.Length > 1)
                            {
                                foreach (var email in splitTOEmails)
                                {
                                    MailAddress ToEmail = new MailAddress(email);
                                    message.To.Add(ToEmail);
                                }
                            }
                            else
                            {
                                message.To.Add(emailTo);
                            }
                        }
                    }

                    message.Sender       = new MailAddress(sender);
                    message.From         = new MailAddress(sender, emailTitle);
                    message.Subject      = emailSubject;
                    message.IsBodyHtml   = true;
                    message.Body         = emailBody;
                    message.BodyEncoding = Encoding.UTF8;


                    if (isOTPitem)
                    {
                        otpItem.Status = (int)Enums.SystemEmailMessageStatus.Processed;
                    }
                    else if (isPDOitem)
                    {
                        pdoItem.Status = (int)Enums.SystemEmailMessageStatus.Processed;
                    }
                    else if (isNOZItem)
                    {
                        nozItem.Status = (int)Enums.SystemEmailMessageStatus.Processed;
                    }
                    else
                    {
                        item.Status = (int)Enums.SystemEmailMessageStatus.Processed;
                    }

                    // Boris 20.11.2019:  attachments
                    string attachmentFilename = "";
                    if (isOTPitem || isPDOitem || isNOZItem)
                    {
                        attachmentFilename = isOTPitem ? otpItem.Attachments : (isPDOitem ? pdoItem.Attachments : nozItem.Attachments);
                    }
                    else
                    {
                    }

                    // Boris 27.04.2020: CC seznam emailov
                    if (isPDOitem)
                    {
                        if (pdoItem.CCEmails != null && pdoItem.CCEmails.Length > 0)
                        {
                            string[] splitCCEmails = pdoItem.CCEmails.Split(';');
                            foreach (var email in splitCCEmails)
                            {
                                MailAddress copy = new MailAddress(email);
                                message.CC.Add(copy);
                            }
                        }
                    }


                    if (!string.IsNullOrEmpty(attachmentFilename))
                    {
                        string[] splitAttachments = attachmentFilename.Split(';');
                        foreach (var fileAttachment in splitAttachments)
                        {
                            if (File.Exists(attachmentFilename))
                            {
                                Attachment         attachment  = new Attachment(fileAttachment, MediaTypeNames.Application.Octet);
                                ContentDisposition disposition = attachment.ContentDisposition;
                                disposition.CreationDate     = File.GetCreationTime(fileAttachment);
                                disposition.ModificationDate = File.GetLastWriteTime(fileAttachment);
                                disposition.ReadDate         = File.GetLastAccessTime(fileAttachment);
                                disposition.FileName         = Path.GetFileName(fileAttachment);
                                disposition.Size             = new FileInfo(fileAttachment).Length;
                                disposition.DispositionType  = DispositionTypeNames.Attachment;
                                message.Attachments.Add(attachment);
                            }
                        }
                    }
                    // ------------------------------------------------------------------------------------

                    client.Send(message);
                }

                if (isOTPitem)
                {
                    otpSystemEmailMessageRepo.SaveEmail(otpItem);
                }
                else if (isPDOitem)
                {
                    pdoSystemEmailMessageRepo.SaveEmail(pdoItem);
                }
                else if (isNOZItem)
                {
                    nozSystemEmailMessageRepo.SaveEmail(nozItem);
                }
                else
                {
                    systemEmailMessageRepo.SaveEmail(item);
                }
            }
            catch (SmtpFailedRecipientsException ex)
            {
                if (isOTPitem)
                {
                    otpItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                }
                else if (isPDOitem)
                {
                    pdoItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                }
                else if (isNOZItem)
                {
                    nozItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                }
                else
                {
                    item.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                }

                DataTypesHelper.LogThis("Couldn't send the email to receipient: " + item.EmailTo + "\n" + ex.Message);

                if (isOTPitem)
                {
                    otpSystemEmailMessageRepo.SaveEmail(otpItem);
                }
                else if (isPDOitem)
                {
                    pdoSystemEmailMessageRepo.SaveEmail(pdoItem);
                }
                else if (isNOZItem)
                {
                    nozSystemEmailMessageRepo.SaveEmail(nozItem);
                }
                else
                {
                    systemEmailMessageRepo.SaveEmail(item);
                }
            }
            catch (SmtpException ex)
            {
                if (ex.Message.Contains("Mailbox unavailable"))
                {
                    if (isOTPitem)
                    {
                        otpItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                    }
                    else if (isPDOitem)
                    {
                        pdoItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                    }
                    else if (isNOZItem)
                    {
                        nozItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                    }
                    else
                    {
                        item.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                    }

                    DataTypesHelper.LogThis("Could not send the email to receipient: " + item.EmailTo);

                    if (isOTPitem)
                    {
                        otpSystemEmailMessageRepo.SaveEmail(otpItem);
                    }
                    else if (isPDOitem)
                    {
                        pdoSystemEmailMessageRepo.SaveEmail(pdoItem);
                    }
                    else if (isNOZItem)
                    {
                        nozSystemEmailMessageRepo.SaveEmail(nozItem);
                    }
                    else
                    {
                        systemEmailMessageRepo.SaveEmail(item);
                    }
                }
                else
                {
                    if (isOTPitem)
                    {
                        otpItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                    }
                    else if (isPDOitem)
                    {
                        pdoItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                    }
                    else if (isNOZItem)
                    {
                        nozItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                    }
                    else
                    {
                        item.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                    }

                    DataTypesHelper.LogThis("SmtpException: " + ex.Message);

                    if (isOTPitem)
                    {
                        otpSystemEmailMessageRepo.SaveEmail(otpItem);
                    }
                    else if (isPDOitem)
                    {
                        pdoSystemEmailMessageRepo.SaveEmail(pdoItem);
                    }
                    else if (isNOZItem)
                    {
                        nozSystemEmailMessageRepo.SaveEmail(nozItem);
                    }
                    else
                    {
                        systemEmailMessageRepo.SaveEmail(item);
                    }
                }
            }
            catch (Exception ex)
            {
                if (isOTPitem)
                {
                    otpItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                }
                else if (isPDOitem)
                {
                    pdoItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                }
                else if (isNOZItem)
                {
                    nozItem.Status = (int)Enums.SystemEmailMessageStatus.RecipientError;
                }
                else
                {
                    item.Status = (int)Enums.SystemEmailMessageStatus.Error;
                }

                if (isOTPitem)
                {
                    otpSystemEmailMessageRepo.SaveEmail(otpItem);
                }
                else if (isPDOitem)
                {
                    pdoSystemEmailMessageRepo.SaveEmail(pdoItem);
                }
                else if (isNOZItem)
                {
                    nozSystemEmailMessageRepo.SaveEmail(nozItem);
                }
                else
                {
                    systemEmailMessageRepo.SaveEmail(item);
                }

                DataTypesHelper.LogThis("LOG1: " + ex.Message);
            }
        }
Exemple #30
0
        public void OnTimer(object sender, System.Timers.ElapsedEventArgs args)
        {
            if (isSending)
            {
                return;
            }

            isSending = true;
            SmtpClient client = new SmtpClient();

            try
            {
                client.Host           = ConfigurationManager.AppSettings["SmtpHost"];
                client.Port           = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPort"]);//Port 465 (SSL required)
                client.EnableSsl      = Convert.ToBoolean(ConfigurationManager.AppSettings["SmtpEnableSsl"]);
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.Timeout        = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpTimeout"]);

                if (Convert.ToBoolean(ConfigurationManager.AppSettings["HasCredentials"]))
                {
                    client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["Username"], ConfigurationManager.AppSettings["Password"]);
                }
                else
                {
                    client.UseDefaultCredentials = true;
                }

                systemEmailMessageRepo.UpdateFailedMessges();

                List <SystemEmailMessage> emailList = systemEmailMessageRepo.GetUnprocessedEmails();
                DataTypesHelper.LogThis("List of Unproccessed mail's. Count: " + emailList.Count.ToString());
                foreach (var item in emailList)
                {
                    SendMessages(client, item, null);
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis("CRM:" + ex.Message);
            }
            finally
            {
                isSending = false;
            }

            try
            {
                otpSystemEmailMessageRepo = kernel.Get <ISystemEmailMessageRepository_OTP>();

                //OTP MAIL SETTINGS
                client                = new SmtpClient();
                client.Host           = ConfigurationManager.AppSettings["SmtpHostOTP"];
                client.Port           = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPortOTP"]);//Port 465 (SSL required)
                client.EnableSsl      = Convert.ToBoolean(ConfigurationManager.AppSettings["SmtpEnableSslOTP"]);
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.Timeout        = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpTimeout"]);

                if (Convert.ToBoolean(ConfigurationManager.AppSettings["HasCredentialsOTP"]))
                {
                    client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["UsernameOTP"], ConfigurationManager.AppSettings["PasswordOTP"]);
                }
                else
                {
                    client.UseDefaultCredentials = true;
                }



                otpSystemEmailMessageRepo.UpdateFailedMessges();

                List <SystemEmailMessage_OTP> otpEmailList = otpSystemEmailMessageRepo.GetUnprocessedEmails();
                DataTypesHelper.LogThis("List of OTP Unproccessed mail's. Count: " + otpEmailList.Count.ToString());
                foreach (var item in otpEmailList)
                {
                    SendMessages(client, null, item);
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis("OTP : " + ex.Message);
            }
            finally
            {
                isSending = false;
            }
            try
            {
                pdoSystemEmailMessageRepo = kernel.Get <ISystemEmailMessageRepository_PDO>();
                pdoSettingsRepo           = kernel.Get <ISettingsRepository>();

                DataTypesHelper.LogThis("PDO Mailing setup");
                //PDO MAIL SETTINGS
                client                = new SmtpClient();
                client.Host           = ConfigurationManager.AppSettings["SmtpHostPDO"];
                client.Port           = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPortPDO"]);//Port 465 (SSL required)
                client.EnableSsl      = Convert.ToBoolean(ConfigurationManager.AppSettings["SmtpEnableSslPDO"]);
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.Timeout        = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpTimeout"]);

                if (Convert.ToBoolean(ConfigurationManager.AppSettings["HasCredentialsPDO"]))
                {
                    client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["UsernamePDO"], ConfigurationManager.AppSettings["PasswordPDO"]);
                }
                else
                {
                    client.UseDefaultCredentials = true;
                }



                pdoSystemEmailMessageRepo.UpdateFailedMessges();

                List <SystemEmailMessage_PDO> pdoEmailList = pdoSystemEmailMessageRepo.GetUnprocessedEmails();
                DataTypesHelper.LogThis("List of PDO Unproccessed mail's. Count: " + pdoEmailList.Count.ToString());
                foreach (var item in pdoEmailList)
                {
                    SendMessages(client, null, null, item);
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis("PDO" + ex.Message);
            }
            finally
            {
                isSending = false;
            }

            try
            {
                nozSystemEmailMessageRepo = kernel.Get <ISystemEmailMessageRepository_NOZ>();

                DataTypesHelper.LogThis("NOZ Mailing setup");
                // NOZ MAIL SETTINGS
                client      = new SmtpClient();
                client.Host = ConfigurationManager.AppSettings["SmtpHostNOZ"];
                DataTypesHelper.LogThis("NOZ - 1");
                client.Port = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPortNOZ"]);//Port 465 (SSL required)
                DataTypesHelper.LogThis("NOZ - 2");
                client.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["SmtpEnableSslNOZ"]);
                DataTypesHelper.LogThis("NOZ - 3");
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                DataTypesHelper.LogThis("NOZ - 4");
                client.Timeout = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpTimeout"]);
                DataTypesHelper.LogThis("NOZ - 5");
                if (Convert.ToBoolean(ConfigurationManager.AppSettings["HasCredentialsNOZ"]))
                {
                    client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["UsernameNOZ"], ConfigurationManager.AppSettings["PasswordNOZ"]);
                }
                else
                {
                    client.UseDefaultCredentials = true;
                }
                DataTypesHelper.LogThis("NOZ - 6");
                nozSystemEmailMessageRepo.UpdateFailedMessges();
                DataTypesHelper.LogThis("NOZ - 7");
                List <SystemEmailMessage_NOZ> nozEmailList = nozSystemEmailMessageRepo.GetUnprocessedEmails();
                DataTypesHelper.LogThis("List of NOZ Unproccessed mail's. Count: " + nozEmailList.Count.ToString());
                foreach (var item in nozEmailList)
                {
                    SendMessages(client, null, null, null, item);
                }
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis("NOZ: " + ex.Message);
            }
            finally
            {
                isSending = false;
            }
        }