/// <summary> /// Save or update Key info /// </summary> /// <param name="newKey"></param> /// <param name="nID"></param> /// <returns></returns> public string SaveOrUpdateKey(key newKey, ref long nID) { string sMessage = "Success"; key obj = new key(); using (var db = new TittleEntities()) { obj = db.keys.Where(x => x.key1 == newKey.key1).FirstOrDefault(); if (obj == null || obj.id == 0) { newKey.created_at = DateTime.Now; newKey.updated_at = DateTime.Now; db.keys.Add(newKey); db.SaveChanges(); //add entry in translation StringBuilder strQuery = new StringBuilder(); strQuery.Append("INSERT INTO `translations` "); strQuery.Append("(`language_id`,`key_id`,`value`,`created_at`,`updated_at`) "); strQuery.Append("select id," + newKey.id.ToString() + ",'',NOW(),NOW() from languages"); var _dataQuery = db.Database.ExecuteSqlCommand(strQuery.ToString()); nID = newKey.id; } else { sMessage = "Key already exist."; } } return(sMessage); }
/// <summary> /// Update translation info /// </summary> /// <param name="nID"></param> /// <param name="value"></param> /// <returns></returns> public string UpdateTranslation(long nID, string value) { string sMessage = "Success"; translation obj = new translation(); using (var db = new TittleEntities()) { obj = db.translations.Where(x => x.id == nID).FirstOrDefault(); if (obj != null && obj.id > 0) { obj.value = value; obj.updated_at = DateTime.Now; //update key db.translations.Attach(obj); db.Entry(obj).State = EntityState.Modified; db.SaveChanges(); nID = obj.id; } else { sMessage = "Translation not exists."; } } return(sMessage); }
/// <summary> /// Save or update Language info /// </summary> /// <param name="newLang"></param> /// <param name="nID"></param> /// <returns></returns> public string SaveOrUpdateLanguage(CustomNewLanguage newLang, ref long nID) { string sMessage = "Success"; language obj = new language(); using (var db = new TittleEntities()) { obj.locale = newLang.locale; obj.label = newLang.langLabel; obj.created_at = DateTime.Now; obj.updated_at = DateTime.Now; db.languages.Add(obj); db.SaveChanges(); //add entry in translation StringBuilder strQuery = new StringBuilder(); strQuery.Append("INSERT INTO `translations` "); strQuery.Append("(`language_id`,`key_id`,`value`,`created_at`,`updated_at`) "); strQuery.Append("select " + obj.id.ToString() + ",id,'',NOW(),NOW() from `keys`"); var _dataQuery = db.Database.ExecuteSqlCommand(strQuery.ToString()); nID = obj.id; } return(sMessage); }
/// <summary> /// Delete key info /// </summary> /// <param name="nID"></param> /// <returns></returns> public string Deletekey(long nID) { string sMessage = "Success"; key obj = new key(); using (var db = new TittleEntities()) { obj = db.keys.Where(x => x.id == nID).FirstOrDefault(); if (obj != null && obj.id > 0) { //delete translation data StringBuilder strQuery = new StringBuilder(); strQuery.Append("Delete from `translations` "); strQuery.Append("WHERE key_id=" + nID.ToString() + " AND id!=0"); var _dataQuery = db.Database.SqlQuery <CustomLanguage>(strQuery.ToString()).ToList(); //delete key db.keys.Attach(obj); db.keys.Remove(obj); db.SaveChanges(); nID = obj.id; } else { sMessage = "Key not exists."; } } return(sMessage); }
/// <summary> /// Change Redeem Status /// </summary> /// <param name="nID"></param> /// <param name="sStatus"></param> /// <returns></returns> public string ChangeRedeemStatus(long nID, string sStatus) { string sMessage = "Success"; user_redeem obj = GetRedeemInfo(nID); using (var db = new TittleEntities()) { if (sStatus == "Approved") { obj.status = 1; } else if (sStatus == "Completed") { obj.status = 2; } else { obj.status = 0; } db.user_redeem.Attach(obj); db.Entry(obj).State = EntityState.Modified; db.SaveChanges(); } return(sMessage); }
/// <summary> /// Delete Language info /// </summary> /// <param name="nID"></param> /// <returns></returns> public string DeleteLanguage(long nID) { string sMessage = "Success"; language obj = new language(); using (var db = new TittleEntities()) { obj = db.languages.Where(x => x.id == nID).FirstOrDefault(); if (obj != null && obj.id > 0) { //delete translation data StringBuilder strQuery = new StringBuilder(); strQuery.Append("Delete from `translations` "); strQuery.Append("WHERE language_id=" + nID.ToString() + " AND id!=0"); var _dataQuery = db.Database.ExecuteSqlCommand(strQuery.ToString()); //delete language db.languages.Attach(obj); db.languages.Remove(obj); db.SaveChanges(); nID = obj.id; } else { sMessage = "Language not exists."; } } return(sMessage); }
/// <summary> /// Save notification box info /// </summary> /// <returns></returns> public void SaveNotificationBoxInfo(notification_boxes obj) { using (var db = new TittleEntities()) { db.notification_boxes.Add(obj); db.SaveChanges(); } }
/// <summary> /// Update notification info /// </summary> /// <returns></returns> public void UpdateNotificationInfo(notification obj) { using (var db = new TittleEntities()) { db.notifications.Add(obj); db.SaveChanges(); } }
/// <summary> /// Notifications list /// </summary> /// <returns></returns> public List <CustomNotification> GetNotificationList(string searchBy, int take, int skip, string sortBy, bool sortDir, string customField, out int filteredResultsCount, out int totalResultsCount) { var whereClause = "(name like '%" + searchBy + "%' OR OnDate like '%" + searchBy + "%' OR "; whereClause += "NextNotificationDate like '%" + searchBy + "%' OR content like '%" + searchBy + "%' OR "; whereClause += "type like '%" + searchBy + "%' OR status like '%" + searchBy + "%' OR "; whereClause += "data like '%" + searchBy + "%') "; if (customField == "Today") { whereClause += " AND type='published' AND STR_TO_DATE(NextNotificationDate, '%d/%m/%Y %T')>=now() AND STR_TO_DATE(NextNotificationDate, '%d/%m/%Y %T')<=DATE_ADD(now(), INTERVAL 1 DAY)"; } if (String.IsNullOrEmpty(sortBy)) { // if we have an empty search then just order the results by Id ascending sortBy = "name"; sortDir = true; } if (sortBy.Contains("Date")) { sortBy = "STR_TO_DATE(" + sortBy + ", '%d/%m/%Y %T')"; } if (sortDir) { sortBy += " asc"; } else { sortBy += " desc"; } List <CustomNotification> _data = new List <CustomNotification>(); StringBuilder strQuery = new StringBuilder(); List <CustomNotification> _dataFiltered = new List <CustomNotification>(); StringBuilder strFilteredQuery = new StringBuilder(); using (var db = new TittleEntities()) { strFilteredQuery.Append("Select * from ("); strFilteredQuery.Append("Select id, name,OnDate,NextNotificationDate,content,type,status, "); strFilteredQuery.Append("if (data = 'all','All user',concat((CHAR_LENGTH(data) - CHAR_LENGTH(REPLACE(data, ',', '')) + 1), ' users')) as data "); strFilteredQuery.Append(" from( "); strFilteredQuery.Append("SELECT id, name, DATE_FORMAT(time, '%d/%m/%Y %T') as OnDate, "); strFilteredQuery.Append("DATE_FORMAT(next_notification, '%d/%m/%Y %T') as NextNotificationDate, "); strFilteredQuery.Append("content, type, status, replace(replace(data, '{\"users\":\"', ''), '\"}', '') as data "); strFilteredQuery.Append("FROM notifications where type<>'' AND status<>'completed') as n) as tbl "); strFilteredQuery.Append("where " + whereClause); strFilteredQuery.Append(" order by " + sortBy); _data = db.Database.SqlQuery <CustomNotification>(strFilteredQuery.ToString()).ToList(); _dataFiltered = _data.Skip(skip).Take(take).ToList(); filteredResultsCount = _data.Count(); totalResultsCount = _data.Count(); } return(_dataFiltered); }
/// <summary> /// Get System Notification Info /// </summary> /// <returns></returns> public system_settings GetSystemNotificationInfo() { List <system_settings> NotificationInfo; using (var db = new TittleEntities()) { NotificationInfo = db.system_settings.Where(x => x.key == "reminder_notification").ToList(); } return(NotificationInfo[0]); }
/// <summary> /// Get Promo Code Info /// </summary> /// <returns></returns> public promo_codes GetPromoCodeInfo(long nID) { List <promo_codes> PromoCodeInfo; using (var db = new TittleEntities()) { PromoCodeInfo = db.promo_codes.Where(x => x.id == nID).ToList(); } return(PromoCodeInfo[0]); }
/// <summary> /// Get Notification Info /// </summary> /// <returns></returns> public notification GetNotificationInfo(long nID) { List <notification> NotificationInfo; using (var db = new TittleEntities()) { NotificationInfo = db.notifications.Where(x => x.id == nID).ToList(); } return(NotificationInfo[0]); }
/// <summary> /// Get Redemption Gift Info /// </summary> /// <returns></returns> public redeem GetRedemptionGiftInfo(long nID) { List <redeem> RedemptionGiftInfo; using (var db = new TittleEntities()) { RedemptionGiftInfo = db.redeems.Where(x => x.id == nID).ToList(); } return(RedemptionGiftInfo[0]); }
/// <summary> /// Get Redeem Info /// </summary> /// <returns></returns> public user_redeem GetRedeemInfo(long nID) { List <user_redeem> RedeemInfo; using (var db = new TittleEntities()) { RedeemInfo = db.user_redeem.Where(x => x.id == nID).ToList(); } return(RedeemInfo[0]); }
/// <summary> /// Devices list /// </summary> /// <returns></returns> public List <device> GetListOfDevices(long id) { List <device> devices = new List <device>(); using (var db = new TittleEntities()) { devices = db.devices.Where(x => x.device_id == id).ToList(); } return(devices); }
/// <summary> /// Active Notifications list /// </summary> /// <returns></returns> public List <notification> GetActiveNotifications() { List <notification> notifications = new List <notification>(); DateTime dt = DateTime.Now; using (var db = new TittleEntities()) { notifications = db.notifications.Where(x => x.status == "published" && (DateTime)x.next_notification <= dt).ToList(); } return(notifications); }
/// <summary> /// Promo Codes list /// </summary> /// <returns></returns> public List <CustomPromoCode> GetPromoCodesList(string searchBy, int take, int skip, string sortBy, bool sortDir, out int filteredResultsCount, out int totalResultsCount) { var whereClause = "CodeID like '%" + searchBy + "%' OR Quantity like '%" + searchBy + "%' OR "; whereClause += "Value like '%" + searchBy + "%' OR Rules like '%" + searchBy + "%' OR "; whereClause += "StartDate like '%" + searchBy + "%' OR EndDate like '%" + searchBy + "%' OR "; whereClause += "Description like '%" + searchBy + "%' OR TypeValue like '%" + searchBy + "%' OR "; whereClause += "Status like '%" + searchBy + "%' "; if (String.IsNullOrEmpty(sortBy)) { // if we have an empty search then just order the results by Id ascending sortBy = "CodeID"; sortDir = true; } if (sortBy.Contains("Date")) { sortBy = "STR_TO_DATE(" + sortBy + ", '%d/%m/%Y')"; } if (sortDir) { sortBy += " asc"; } else { sortBy += " desc"; } List <CustomPromoCode> _data = new List <CustomPromoCode>(); StringBuilder strQuery = new StringBuilder(); List <CustomPromoCode> _dataFiltered = new List <CustomPromoCode>(); StringBuilder strFilteredQuery = new StringBuilder(); using (var db = new TittleEntities()) { strFilteredQuery.Append("Select * from ("); strFilteredQuery.Append("SELECT id, code as CodeID, description as Description, promo_type as TypeValue, "); strFilteredQuery.Append("if (type = 'percentage',concat(FLOOR(value), '%'),concat(value, ' SGD')) as Value, "); strFilteredQuery.Append("DATE_FORMAT(start_date, '%d/%m/%Y') as StartDate, "); strFilteredQuery.Append("DATE_FORMAT(end_date, '%d/%m/%Y') as EndDate, "); strFilteredQuery.Append("rule as Rules, if(quantity=-1,'Unlimited',quantity) as Quantity, "); strFilteredQuery.Append("if (now() < start_date,'Scheduled',if (now() >= end_date,'Expired','Open')) as Status "); strFilteredQuery.Append("FROM promo_codes) as tbl "); strFilteredQuery.Append("where " + whereClause); strFilteredQuery.Append(" order by " + sortBy); _data = db.Database.SqlQuery <CustomPromoCode>(strFilteredQuery.ToString()).ToList(); _dataFiltered = _data.Skip(skip).Take(take).ToList(); filteredResultsCount = _data.Count(); totalResultsCount = _data.Count(); } return(_dataFiltered); }
/// <summary> /// User Redeem list /// </summary> /// <returns></returns> public List <CustomUserRedeem> GetUserRedeemList(string searchBy, int take, int skip, string sortBy, bool sortDir, out int filteredResultsCount, out int totalResultsCount) { var whereClause = "UserName like '%" + searchBy + "%' OR Redeem like '%" + searchBy + "%' OR "; whereClause += "DateRedeem like '%" + searchBy + "%' OR Status like '%" + searchBy + "%' OR "; whereClause += "ActionName like '%" + searchBy + "%' "; if (String.IsNullOrEmpty(sortBy)) { // if we have an empty search then just order the results by Id ascending sortBy = "UserName"; sortDir = true; } if (sortBy.Contains("Date")) { sortBy = "STR_TO_DATE(" + sortBy + ", '%d/%m/%Y')"; } if (sortDir) { sortBy += " asc"; } else { sortBy += " desc"; } List <CustomUserRedeem> _data = new List <CustomUserRedeem>(); StringBuilder strQuery = new StringBuilder(); List <CustomUserRedeem> _dataFiltered = new List <CustomUserRedeem>(); StringBuilder strFilteredQuery = new StringBuilder(); using (var db = new TittleEntities()) { strFilteredQuery.Append("Select * from ("); strFilteredQuery.Append("SELECT ur.id, DATE_FORMAT(ur.date_redeem, '%d/%m/%Y') as DateRedeem, "); strFilteredQuery.Append("if (ur.status = 0,'Ordered',if (ur.status = 1,'Approved','Completed')) as Status, "); strFilteredQuery.Append("if (isnull(u.id),'no name',u.name) as UserName, "); strFilteredQuery.Append("if (isnull(r.id),'no redeem',r.name) as Redeem, "); strFilteredQuery.Append("if (ur.status = 0,'Approved',if (ur.status = 1,'Completed','')) as ActionName "); strFilteredQuery.Append(" FROM user_redeem as ur left join "); strFilteredQuery.Append(" users as u on ur.user_id = u.id left join "); strFilteredQuery.Append(" redeem as r on ur.redeem_id = r.id) as tbl "); strFilteredQuery.Append("where " + whereClause); strFilteredQuery.Append(" order by " + sortBy); _data = db.Database.SqlQuery <CustomUserRedeem>(strFilteredQuery.ToString()).ToList(); _dataFiltered = _data.Skip(skip).Take(take).ToList(); filteredResultsCount = _data.Count(); totalResultsCount = _data.Count(); } return(_dataFiltered); }
/// <summary> /// Update System Notification Info /// </summary> /// <returns></returns> public void UpdateSystemNotificationInfo(string value) { using (var db = new TittleEntities()) { system_settings obj = db.system_settings.Where(x => x.key == "reminder_notification").FirstOrDefault(); obj.value = value; db.system_settings.Attach(obj); db.Entry(obj).State = EntityState.Modified; db.SaveChanges(); } }
/// <summary> /// Languages list /// </summary> /// <returns></returns> public List <CustomLanguage> GetLanguagesList() { List <CustomLanguage> _dataQuery = new List <CustomLanguage>(); using (var db = new TittleEntities()) { StringBuilder strQuery = new StringBuilder(); strQuery.Append("SELECT id as Id, label as LangLabel FROM languages "); _dataQuery = db.Database.SqlQuery <CustomLanguage>(strQuery.ToString()).ToList(); } return(_dataQuery); }
/// <summary> /// Delete Promo Code /// </summary> /// <returns></returns> public void DeletePromoCode(long nID, ref string sMessage) { sMessage = "Delete can't be completed , there are "; promo_codes obj = GetPromoCodeInfo(nID); using (var db = new TittleEntities()) { db.promo_codes.Attach(obj); db.promo_codes.Remove(obj); db.SaveChanges(); } sMessage = "Success"; }
/// <summary> /// Delete Notification /// </summary> /// <returns></returns> public void DeleteNotification(long nID, ref string sMessage) { sMessage = "Delete can't be completed , there are "; notification obj = GetNotificationInfo(nID); using (var db = new TittleEntities()) { db.notifications.Attach(obj); db.notifications.Remove(obj); db.SaveChanges(); } sMessage = "Success"; }
/// <summary> /// Delete Redemption Gift /// </summary> /// <returns></returns> public void DeleteRedemptionGift(long nID, ref string sMessage) { sMessage = "Delete can't be completed , there are "; redeem obj = GetRedemptionGiftInfo(nID); using (var db = new TittleEntities()) { db.redeems.Attach(obj); db.redeems.Remove(obj); db.SaveChanges(); } sMessage = "Success"; }
/// <summary> /// Notification Users list /// </summary> /// <returns></returns> public List <CustomNotificationUser> GetUserDetailByEmail(string email) { List <CustomNotificationUser> _data = new List <CustomNotificationUser>(); StringBuilder strQuery = new StringBuilder(); using (var db = new TittleEntities()) { strQuery.Append("SELECT user.id, users.email as Email"); strQuery.Append(" FROM users "); strQuery.Append(" where users.active=1 AND users.email='" + email + "'"); _data = db.Database.SqlQuery <CustomNotificationUser>(strQuery.ToString()).ToList(); } return(_data); }
/// <summary> /// Translations list /// </summary> /// <returns></returns> public List <CustomLanguageTranslation> GetTranslationsList(string searchBy, int take, int skip, string sortBy, bool sortDir, string customField, out int filteredResultsCount, out int totalResultsCount) { var whereClause = "tbl.key like '%" + searchBy + "%' OR tbl.label like '%" + searchBy + "%' OR "; whereClause += "tbl.value like '%" + searchBy + "%' "; if (String.IsNullOrEmpty(sortBy)) { // if we have an empty search then just order the results by Id ascending sortBy = "key"; sortDir = true; } if (sortBy.Contains("Date")) { sortBy = "STR_TO_DATE(" + sortBy + ", '%d/%m/%Y')"; } if (sortDir) { sortBy += " asc"; } else { sortBy += " desc"; } List <CustomLanguageTranslation> _data = new List <CustomLanguageTranslation>(); StringBuilder strQuery = new StringBuilder(); List <CustomLanguageTranslation> _dataFiltered = new List <CustomLanguageTranslation>(); StringBuilder strFilteredQuery = new StringBuilder(); using (var db = new TittleEntities()) { strFilteredQuery.Append("Select * from ("); strFilteredQuery.Append("select k.key,k.label,t.value,t.id, t.key_id "); strFilteredQuery.Append("from `keys` as k join "); strFilteredQuery.Append("translations as t on k.id = t.key_id "); strFilteredQuery.Append("where t.language_id = " + customField + ") as tbl "); strFilteredQuery.Append("where " + whereClause); strFilteredQuery.Append(" order by tbl." + sortBy); _data = db.Database.SqlQuery <CustomLanguageTranslation>(strFilteredQuery.ToString()).ToList(); _dataFiltered = _data.Skip(skip).Take(take).ToList(); filteredResultsCount = _data.Count(); totalResultsCount = _data.Count(); } return(_dataFiltered); }
/// <summary> /// Notification Users list /// </summary> /// <returns></returns> public List <CustomNotificationUser> GetNotificationUsersList(long Id) { List <CustomNotificationUser> _data = new List <CustomNotificationUser>(); StringBuilder strQuery = new StringBuilder(); using (var db = new TittleEntities()) { strQuery.Append("SELECT user.id, users.email as Email"); strQuery.Append(" FROM notifications join"); strQuery.Append(" users"); strQuery.Append(" on replace(replace(data, '{\"users\":\"', ''), '\"}', '')='all' OR users.id in (replace(replace(data, '{\"users\":\"', ''), '\"}', ''))"); strQuery.Append(" join devices on users.id=devices.deviceable_id where users.active=1"); _data = db.Database.SqlQuery <CustomNotificationUser>(strQuery.ToString()).ToList(); } return(_data); }
/// <summary> /// Get Promo Code Info By Code /// </summary> /// <returns></returns> public promo_codes GetPromoCodeInfoByCode(string code) { List <promo_codes> PromoCodeInfo; using (var db = new TittleEntities()) { PromoCodeInfo = db.promo_codes.Where(x => x.code == code).ToList(); } if (PromoCodeInfo.Count > 0) { return(PromoCodeInfo[0]); } else { return(null); } }
/// <summary> /// Get Redemption Gift ByKey /// </summary> /// <returns></returns> public redeem GetRedemptionGiftByKey(string name) { List <redeem> RedemptionGiftInfo; using (var db = new TittleEntities()) { RedemptionGiftInfo = db.redeems.Where(x => x.name == name).ToList(); } if (RedemptionGiftInfo.Count > 0) { return(RedemptionGiftInfo[0]); } else { return(null); } }
/// <summary> /// Save or update promo code info /// </summary> /// <param name="_promoCode"></param> /// <param name="nID"></param> /// <returns></returns> public string SaveOrUpdatePromoCode(CustomPromoCode _promoCode, ref long nID) { string sMessage = "Success"; promo_codes obj; if (_promoCode.id != 0) { obj = GetPromoCodeInfo(_promoCode.id); } else { obj = new promo_codes(); } using (var db = new TittleEntities()) { obj.code = _promoCode.CodeID; obj.description = _promoCode.Description; obj.end_date = DateTime.ParseExact(_promoCode.EndDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); obj.promo_type = _promoCode.TypeValue; obj.quantity = Convert.ToInt32(_promoCode.Quantity); obj.rule = string.IsNullOrEmpty(_promoCode.Rules) ? "" : _promoCode.Rules; obj.start_date = DateTime.ParseExact(_promoCode.StartDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); obj.type = _promoCode.type; obj.value = Convert.ToDecimal(_promoCode.Value); obj.updated_at = DateTime.Now; if (_promoCode.id != 0) { db.promo_codes.Attach(obj); db.Entry(obj).State = EntityState.Modified; } else { obj.created_at = DateTime.Now; db.promo_codes.Add(obj); } db.SaveChanges(); nID = obj.id; } return(sMessage); }
/// <summary> /// Save or update Notification info /// </summary> /// <param name="_notification"></param> /// <param name="nID"></param> /// <returns></returns> public string AddNotification(CustomNotification _notification, ref long nID) { string sMessage = "Success"; notification obj; if (_notification.id != 0) { obj = GetNotificationInfo(_notification.id); } else { obj = new notification(); } using (var db = new TittleEntities()) { obj.data = _notification.data; obj.content = _notification.content; obj.name = _notification.name; obj.time = DateTime.ParseExact(_notification.OnDate, "dd/MM/yyyy hh:mm tt", CultureInfo.InvariantCulture); obj.type = _notification.type; obj.next_notification = DateTime.ParseExact(_notification.NextNotificationDate, "dd/MM/yyyy hh:mm tt", CultureInfo.InvariantCulture); obj.status = _notification.status; obj.updated_at = DateTime.Now; if (_notification.id != 0) { db.notifications.Attach(obj); db.Entry(obj).State = EntityState.Modified; } else { obj.created_at = DateTime.Now; db.notifications.Add(obj); } db.SaveChanges(); nID = obj.id; } return(sMessage); }