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); } }
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); } }
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 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); } }
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(); } }
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(); } }
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(); } }