Beispiel #1
0
 public void GetUnProcessedRecordsAvtomatika()
 {
     try
     {
         ProcessEventsToAvtomatika();
         List <Avtomatika> list = context.Avtomatika.Where(a => a.Status == (int)Enums.SystemMessageEventStatus.UnProcessed).ToList();
         var groupedList        = list.GroupBy(ga => ga.OsebaID).ToList();
         if (list != null)
         {
             foreach (var item in groupedList)
             {
                 SystemMessageEvents newEvent = new SystemMessageEvents();
                 newEvent.SystemMessageEventID = 0;
                 newEvent.Status   = (int)Enums.SystemMessageEventStatus.UnProcessed;
                 newEvent.MasterID = item.Key;
                 newEvent.Code     = Enums.SystemMessageEventCodes.AUTO.ToString();
                 newEvent.ts       = DateTime.Now;
                 //newEvent.tsIDOsebe = 1;
                 context.SystemMessageEvents.Add(newEvent);
             }
             context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ValidationExceptionError.res_08, ex);
     }
 }
Beispiel #2
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);
     }
 }
Beispiel #3
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);
        }
Beispiel #4
0
        public void SaveEmailEventMessage(EmailMessageModel model)
        {
            try
            {
                SystemMessageEvents sem = new SystemMessageEvents();
                sem.SystemMessageEventID = model.ID;
                sem.MasterID             = model.MasterID;
                sem.Code      = model.Code;
                sem.Status    = model.Status;
                sem.ts        = DateTime.Now;
                sem.tsIDOsebe = model.tsIDOsebe;

                context.SystemMessageEvents.Add(sem);
                context.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ValidationExceptionError.res_08, ex);
            }
        }
Beispiel #5
0
        public void ProcessNewMessage(SystemMessageEvents message)
        {
            string       body         = "";
            string       templatePath = (AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["NEW_MESSAGE_TEMPLATE"].ToString()).Replace("\"", "\\");
            StreamReader reader       = new StreamReader(templatePath);

            try
            {
                string templateString = reader.ReadToEnd();
                templateString = templateString.Replace("$#", body);

                SystemEmailMessage emailConstruct = new SystemEmailMessage();

                emailConstruct.EmailFrom    = ConfigurationManager.AppSettings["EmailFrom"].ToString();
                emailConstruct.EmailTo      = "*****@*****.**";
                emailConstruct.EmailSubject = SystemEmailMessageResource.res_01;
                emailConstruct.EmailBody    = templateString;
                emailConstruct.Status       = (int)Enums.SystemEmailMessageStatus.UnProcessed;
                emailConstruct.ts           = DateTime.Now;
                emailConstruct.tsIDOsebe    = message.tsIDOsebe;
                context.SystemEmailMessage.Add(emailConstruct);
                context.SaveChanges();

                //update status
                message.Status = (int)Enums.SystemMessageEventStatus.Processed;
                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);
            }
            finally
            {
                reader.Close();
            }
        }
Beispiel #6
0
        public void ProcessEventMessage(SystemMessageEvents message, Enums.SystemMessageEventCodes eventCode = Enums.SystemMessageEventCodes.EVENT_DOGODEK)
        {
            StreamReader reader = null;

            try
            {
                //DataTypesHelper.LogThis("*****IN Method ProcessEventMessage*****");
                int    employeeHierarchyLevel = GetEmployeeHierarchyLevel(eventCode);
                string emailSubject           = SystemEmailMessageResource.res_03;
                string templatePath           = (AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["NEW_EVENT_TEMPLATE"].ToString()).Replace("\"", "\\");
                DataTypesHelper.LogThis(AppDomain.CurrentDomain.BaseDirectory);
                Dogodek dogodek = context.Dogodek.Where(dog => dog.idDogodek == message.MasterID).FirstOrDefault();
                EventMessageTemplateModel modelForTemplate = new EventMessageTemplateModel();

                if (EventPreparationOrReport(eventCode))
                {
                    templatePath               = (AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["MEETING_WARNING_TEMPLATE"].ToString()).Replace("\"", "\\");
                    modelForTemplate.Tip       = EventPreparation(eventCode) ? "Priprava" : "Poročilo";
                    modelForTemplate.Zamuda    = DateTime.Now.Subtract(dogodek.DatumOtvoritve.Value).Days;
                    modelForTemplate.Otvoritev = dogodek.DatumOtvoritve.Value;
                    modelForTemplate.ServerTag = ConfigurationManager.AppSettings["ServerTag"].ToString();
                    emailSubject               = SystemEmailMessageResource.res_04.Replace("%Tip%", modelForTemplate.Tip);
                }
                //DataTypesHelper.LogThis("*****Afer if statement of checking if event is about priprava or Poročilo***** EVENT ID: " + dogodek.idDogodek.ToString());
                //DataTypesHelper.LogThis("*****TemplatePath: ********" + templatePath);
                reader = new StreamReader(templatePath);
                //DataTypesHelper.LogThis("***1***");

                modelForTemplate.idDogodek = dogodek.idDogodek;
                //DataTypesHelper.LogThis("***2***");
                modelForTemplate.ImeIzvajalec = dogodek.Osebe != null ? dogodek.Osebe.Ime : "";
                //DataTypesHelper.LogThis("***3***");
                modelForTemplate.PriimekIzvajalec = dogodek.Osebe != null ? dogodek.Osebe.Priimek : "";
                //DataTypesHelper.LogThis("***4***");
                modelForTemplate.ImeSkrbnik = dogodek.Osebe1 != null ? dogodek.Osebe1.Ime : "";
                //DataTypesHelper.LogThis("***5***");
                modelForTemplate.PriimekSkrbnik = dogodek.Osebe1 != null ? dogodek.Osebe1.Priimek : "";
                //DataTypesHelper.LogThis("***6***");
                modelForTemplate.Kategorija = dogodek.Kategorija != null ? dogodek.Kategorija.Naziv : "";
                //DataTypesHelper.LogThis("***7***");
                modelForTemplate.KategorijaKoda = dogodek.Kategorija != null ? dogodek.Kategorija.Koda : "";
                //DataTypesHelper.LogThis("***8***");
                modelForTemplate.NazivPrvi = dogodek.Stranka != null ? dogodek.Stranka.NazivPrvi : "";
                //DataTypesHelper.LogThis("***9***");
                modelForTemplate.Opis = dogodek.Opis;
                //DataTypesHelper.LogThis("***10***");
                modelForTemplate.EmailTo = dogodek.Osebe != null ? dogodek.Osebe.Email : "";
                //DataTypesHelper.LogThis("***11***");
                modelForTemplate.Rok = dogodek.Rok.HasValue ? dogodek.Rok.Value : DateTime.MinValue;
                //DataTypesHelper.LogThis("***12***");
                modelForTemplate.Status = dogodek.StatusDogodek != null ? dogodek.StatusDogodek.Naziv : "";
                //DataTypesHelper.LogThis("***13***");
                string templateString = reader.ReadToEnd();
                //DataTypesHelper.LogThis("*****Before ReplaceDefaultValuesInTemplate*****");
                templateString = ReplaceDefaultValuesInTemplate(modelForTemplate, templateString);
                //DataTypesHelper.LogThis("*****After ReplaceDefaultValuesInTemplate*****");

                if (String.IsNullOrEmpty(modelForTemplate.Opis))
                {
                    templateString = templateString.Replace("$%Opis%$ ", "");
                }

                //DataTypesHelper.LogThis("*****Before if statement Sporocila*****");
                if (dogodek.Sporocila != null && eventCode.Equals(Enums.SystemMessageEventCodes.EVENT_DOGODEK))
                {
                    foreach (var item in dogodek.Sporocila)
                    {
                        int index = templateString.IndexOf("##INSERT_MESSAGE_HERE##");
                        templateString = templateString.Insert(index, item.OpisDel + "<br />");
                    }
                }
                //DataTypesHelper.LogThis("*****After if statement Sporocila*****");
                templateString = templateString.Replace("##INSERT_MESSAGE_HERE##", "");
                if (dogodek.Osebe != null)
                {
                    SaveToSystemEmailMessage(dogodek.Osebe.Email, templateString, dogodek.Osebe.idOsebe, employeeHierarchyLevel, emailSubject);
                }
                //DataTypesHelper.LogThis("*****After SaveSystemEmailMessage*****");
                //TODO: Update Avtomatika tabela
                //update status
                message.Status = (int)Enums.SystemMessageEventStatus.Processed;
                //DataTypesHelper.LogThis("*****Before UpdateSysteMessageEvents*****");
                UpdateSystemMessageEvents(message);
                //DataTypesHelper.LogThis("*****After UpdateSysteMessageEvents*****");
            }
            catch (Exception ex)
            {
                DataTypesHelper.LogThis("Error:" + ex.Message);
                throw new Exception(ex.Message);
            }
            finally
            {
                reader.Close();
            }
        }
Beispiel #7
0
        public void ProcessAutoMessage(SystemMessageEvents message)
        {
            DataTypesHelper.LogThis("ProcessAutoMessage Method - 1 : BEFORE Open templatePath");
            string       templatePath = (AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["EMPLOYEE_MESSAGE_TEMPLATE"].ToString()).Replace("\"", "\\");
            StreamReader reader       = new StreamReader(templatePath);

            DataTypesHelper.LogThis("ProcessAutoMessage Method - 2 : AFTER Open templatePath");
            try
            {
                DataTypesHelper.LogThis("ProcessAutoMessage Method - 3 : BEFORE get avtomatikaList");
                List <Avtomatika> avtomatikaList = context.Avtomatika.Where(a => a.OsebaID == message.MasterID && a.Status == (int)Enums.SystemMessageEventStatus.UnProcessed).ToList();
                DataTypesHelper.LogThis("ProcessAutoMessage Method - 4 : After get avtomatikaList");
                DataTypesHelper.LogThis("ProcessAutoMessage Method - 5 : BEFORE get Get Oseba by message.MasterID");
                Osebe oseba = context.Osebe.Where(o => o.idOsebe == message.MasterID).FirstOrDefault();
                //DataTypesHelper.LogThis("After getting avtomatika values from DB - " + avtomatikaList.Count.ToString());
                DataTypesHelper.LogThis("BEFORE reading template string");
                string templateString = reader.ReadToEnd();
                DataTypesHelper.LogThis("AFTER reading template string.");
                //DataTypesHelper.LogThis("Before if! AvtomatikaList count =" + avtomatikaList.Count.ToString() + "  - Oseba :" + (oseba != null).ToString() + " - OsebaID: " + message.MasterID.ToString());
                if (avtomatikaList.Count > 0 && oseba != null)
                {
                    //DataTypesHelper.LogThis("*********Before ReplaceDefaultValuesInTemplate**********");
                    templateString = ReplaceDefaultValuesInTemplate(oseba, templateString);
                    DataTypesHelper.LogThis("BEFORE ConstructTemplate for clients.");
                    int index = templateString.IndexOf("##INSERT_CLIENTS_HERE##");
                    //DataTypesHelper.LogThis("*********Before ConstructTemplate**********");
                    templateString = templateString.Insert(index, ConstructTemplate(avtomatikaList, templateString));
                    DataTypesHelper.LogThis("AFTER ConstructTemplate for clients.");
                    templateString = templateString.Replace("##INSERT_CLIENTS_HERE##", "");
                    //DataTypesHelper.LogThis("*****After  ConstructTemplate method IN ProcessAutoMessage***** - user email : " + avtomatikaList[0].Osebe.Email + "Stopnja nadrejenega : " + avtomatikaList[0].StopnjaNadrejenega.ToString());
                    DataTypesHelper.LogThis("BEFORE Saving item to SystemEmailMessage table.");
                    SaveToSystemEmailMessage(oseba.Email, templateString, message.tsIDOsebe, avtomatikaList[0].StopnjaNadrejenega, SystemEmailMessageResource.res_02);
                    DataTypesHelper.LogThis("AFTER Saving item to SystemEmailMessage table.");
                }

                int count = 0;
                DataTypesHelper.LogThis("BEFORE update avtomatikaList.");
                //update Avtomatika table status
                foreach (var item in avtomatikaList)
                {
                    //var original = context.Avtomatika.Where(av => av.AvtomatikaID == item.AvtomatikaID).FirstOrDefault();
                    // if (original != null)
                    // {
                    context.Entry(item).Entity.Status = (int)Enums.SystemMessageEventStatus.Processed;
                    count++;
                    DataTypesHelper.LogThis("Trenutni count : " + count);
                    // }
                }
                DataTypesHelper.LogThis("Avtomatika / Count :" + count.ToString() + "\r\n" + "AvtomatikaList count : " + avtomatikaList.Count.ToString());

                context.SaveChanges();

                DataTypesHelper.LogThis("BEFORE update UpdateSystemMessageEvents status.");
                //update status
                message.Status = (int)Enums.SystemMessageEventStatus.Processed;
                UpdateSystemMessageEvents(message);
                DataTypesHelper.LogThis("AFTER update UpdateSystemMessageEvents status.");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                reader.Close();
            }
        }