|
|
using EasyBL.WebApi.Message; using Entity.Sugar; using SqlSugar.Base; using System; using System.Collections.Generic;
namespace EasyBL.WEBAPP { public class CalendarService : ServiceBase { #region 抓去行事曆資料
/// <summary>
/// 函式名稱:GetList
/// 函式說明:抓去行事曆資料
/// </summary>
/// <param name="i_crm">todo: describe i_crm parameter on GetList</param>
/// <returns>
/// 回傳 rm(Object)
///</returns>
public ResponseMessage GetList(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; var db = SugarBase.GetIntance(); try { do { //HttpContext hc = HttpContext.Current;
//string outlook_userName = ClaimsPrincipal.Current.FindFirst("name").Value;
var sStartDate = _fetchString(i_crm, @"StartDate"); var sEndDate = _fetchString(i_crm, @"EndDate"); var sCalType = _fetchString(i_crm, @"CalType"); var sOpenMent = _fetchString(i_crm, @"OpenMent");
var rStartDate = Convert.ToDateTime(sStartDate); var rEndDate = Convert.ToDateTime(sEndDate); const string sSQL = @"SELECT DISTINCT MemberID+',' FROM dbo.OTB_SYS_Members WHERE DepartmentID IN (SELECT * FROM [dbo].[OFN_SYS_GetParentDepartmentIdByUserID](@OrgID,@UserID)) FOR XML PATH('')"; var dic_pm = new Dictionary<string, string> { { @"OrgID", i_crm.ORIGID }, { @"UserID", i_crm.USERID } };
var sParentDeptUsers = db.Ado.GetString(sSQL, dic_pm);
var saCalendar = db.Queryable<OTB_SYS_Calendar>() .OrderBy(x => x.StartDate) .Where(x => x.OrgID == i_crm.ORIGID && x.StartDate.Date >= rStartDate.Date && x.EndDate.Date <= rEndDate.Date) .Where(x => x.UserID == i_crm.USERID || (x.OpenMent == @"G" && x.GroupMembers.Contains(i_crm.USERID)) || (x.OpenMent == @"D" && sParentDeptUsers.Contains(x.UserID)) || x.OpenMent == @"C") .Where(x => sCalType.Contains(x.CalType)) .Where(x => sOpenMent.Contains(x.OpenMent)) .Where(x => !x.DelStatus) .ToList();
rm = new SuccessResponseMessage(null, i_crm); rm.DATA.Add(BLWording.REL, saCalendar); } while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(CalendarService), @"行事曆", @"GetList(抓去行事曆資料)", @"", @"", @""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 抓去行事曆資料
#region 拆入一條曆資料
/// <summary>
/// 函式名稱:GetList
/// 函式說明:拆入一條曆資料
/// </summary>
/// <param name="i_crm">todo: describe i_crm parameter on Add</param>
/// <returns>
/// 回傳 rm(Object)
///</returns>
public ResponseMessage Add(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; var db = SugarBase.GetIntance(); try { do { var sCalType = _fetchString(i_crm, @"CalType"); var UserID = _fetchString(i_crm, @"UserID") ?? i_crm.USERID; var sTitle = _fetchString(i_crm, @"Title"); var sDescription = _fetchString(i_crm, @"Description"); var sStartDate = _fetchString(i_crm, @"StartDate"); var sEndDate = _fetchString(i_crm, @"EndDate"); var sImportment = _fetchString(i_crm, @"Importment"); var sColor = _fetchString(i_crm, @"Color"); var sAllDay = _fetchString(i_crm, @"AllDay"); var sOpenMent = _fetchString(i_crm, @"OpenMent"); var sGroupMembers = _fetchString(i_crm, @"GroupMembers"); var sRelationId = _fetchString(i_crm, @"RelationId"); var sUrl = _fetchString(i_crm, @"Url"); var sMemo = _fetchString(i_crm, @"Memo") ?? "";
var oCalendar = new OTB_SYS_Calendar { OrgID = i_crm.ORIGID, UserID = UserID, CalType = sCalType, Title = sTitle, Description = sDescription, StartDate = Convert.ToDateTime(sStartDate), EndDate = Convert.ToDateTime(sEndDate), Importment = sImportment, Color = sColor, AllDay = sAllDay == @"1", OpenMent = sOpenMent, GroupMembers = sGroupMembers, Url = sUrl, RelationId = sRelationId, Editable = null, ClassName = null, Memo = sMemo, CreateUser = i_crm.USERID, CreateDate = DateTime.Now, ModifyUser = i_crm.USERID, ModifyDate = DateTime.Now, DelStatus = false }; var sNo = db.Insertable<OTB_SYS_Calendar>(oCalendar).ExecuteReturnBigIdentity();
rm = new SuccessResponseMessage(null, i_crm); rm.DATA.Add(BLWording.REL, sNo); } while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(CalendarService), @"行事曆", @"Add(拆入一條曆資料)", @"", @"", @""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 拆入一條曆資料
#region 刪除行事曆
/// <summary>
/// 刪除行事曆
/// </summary>
/// <param name="relationId"></param>
public void DeleteCalendar(string orgID, string userID, string relationId) { var sMsg = string.Empty; string fnName = nameof(DeleteCalendar); var db = SugarBase.GetIntance(); try { do { var oTB_SYS_Calendars = db.Queryable<OTB_SYS_Calendar>() .Where( x => x.OrgID == orgID) .WhereIF(!string.IsNullOrEmpty(userID), x => x.UserID == userID) .WhereIF(!string.IsNullOrEmpty(relationId), x => x.RelationId == relationId) .ToList(); oTB_SYS_Calendars.ForEach(x => { x.DelStatus = true; }); if (oTB_SYS_Calendars.Count > 0) { db.Updateable(oTB_SYS_Calendars).ExecuteCommand(); } } while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + @"Param:relationId = " + relationId, ex, orgID, userID, nameof(CalendarService), @"行事曆", fnName, @"", @"", @""); } }
#endregion
} }
|