public MSActorReturnMessageModel EnableMailbox([FromBody] EnableMailboxModel input) { try { string logmessage = "EnableMailbox | database: " + input.database + " | alias: " + input.alias + " | emailaddresses: " + input.emailaddresses; util.LogMessage(logmessage); ExchangeController control = new ExchangeController(); return(control.EnableMailbox(input.database, input.alias, input.emailaddresses)); }catch (Exception e) { return(util.ReportError(e)); } }
public MSActorReturnMessageModel DisableMailbox([FromBody] IdentityModel input) { try { string logmessage = "DisableMailbox | identity: " + input.identity; util.LogMessage(logmessage); ExchangeController control = new ExchangeController(); return(control.DisableMailbox(input.identity)); } catch (Exception e) { return(util.ReportError(e)); } }
public MSActorReturnMessageModel HideMailboxFromAddressLists([FromBody] HideMailboxFromAddressListsModel input) { try { string logmessage = "HideMailboxFromAddressLists | identity: " + input.identity + " | hidemailbox: " + input.hidemailbox; util.LogMessage(logmessage); ExchangeController control = new ExchangeController(); return(control.HideMailboxFromAddressLists(input.identity, input.hidemailbox)); } catch (Exception e) { return(util.ReportError(e)); } }
public MSActorReturnMessageModel GetMoveRequest([FromBody] IdentityModel input) { try { string logmessage = "GetMoveRequest | identity: " + input.identity; util.LogMessage(logmessage); ExchangeController control = new ExchangeController(); return(control.GetMoveRequest(input.identity)); } catch (Exception e) { return(util.ReportError(e)); } }
public MSActorReturnMessageModel NewMoveRequest([FromBody] NewMoveRequestModel input) { try { string logmessage = "NewMoveRequest | identity: " + input.identity + " | targetdatabase: " + input.targetdatabase; util.LogMessage(logmessage); ExchangeController control = new ExchangeController(); return(control.NewMoveRequest(input.identity, input.targetdatabase)); } catch (Exception e) { return(util.ReportError(e)); } }
public MSActorReturnMessageModel SetMailboxName([FromBody] SetMailboxNameModel input) { try { string logmessage = "SetMailboxName | identity: " + input.identity + " | alias: " + input.alias + " | addemailaddress: " + input.addemailaddress; util.LogMessage(logmessage); ExchangeController control = new ExchangeController(); return(control.SetMailboxName(input.identity, input.alias, input.addemailaddress)); } catch (Exception e) { return(util.ReportError(e)); } }
public MSActorReturnMessageModel SetMailboxQuotas([FromBody] SetMailboxQuotasModel input) { try { string logmessage = "SetMailboxQuotas | identity: " + input.identity + " | prohibitsendreceivequota: " + input.prohibitsendreceivequota + " | prohibitsendquota: " + input.prohibitsendquota + " | issuewarningquota: " + input.issuewarningquota; util.LogMessage(logmessage); ExchangeController control = new ExchangeController(); return(control.SetMailboxQuotas(input.identity, input.prohibitsendreceivequota, input.prohibitsendquota, input.issuewarningquota)); } catch (Exception e) { return(util.ReportError(e)); } }
/// <summary> /// This method creates a new AD group /// </summary> /// <param name="group_name"></param> /// <param name="group_description"></param> /// <param name="group_info"></param> /// <param name="group_ad_path"></param> /// <param name="group_category"></param> /// <param name="group_scope"></param> /// <returns></returns> public MSActorReturnMessageModel NewADGroup(string group_name, string group_description, string group_info, string group_ad_path, string group_category, string group_scope, string samaccountname) { UtilityController util = new UtilityController(); try { using (PowerShell powershell = PowerShell.Create()) { PSCommand command; if (group_category == "distribution") { // First we need Exchange to enable the distribution group ExchangeController control = new ExchangeController(); MSActorReturnMessageModel msg = control.EnableDistributionGroup(group_name, group_ad_path, group_description, group_info); if (msg.code == "CMP") { // Then we follow up setting some attributes that Exchange's cmdlet won't set string distinguishedName = "CN=" + group_name + "," + group_ad_path; bool setADGroupComplete = false; int count = 0; string objectNotFoundMessage = "Directory object not found"; while (setADGroupComplete == false && count < 3) { try { command = new PSCommand(); command.AddCommand("Set-ADGroup"); command.AddParameter("identity", distinguishedName); if (group_description != "") { command.AddParameter("description", group_description); } command.AddParameter("displayname", group_name); if (group_info != "") { Hashtable attrHash = new Hashtable { { "info", group_info } }; command.AddParameter("Add", attrHash); } powershell.Commands = command; powershell.Invoke(); if (powershell.Streams.Error.Count > 0) { if (powershell.Streams.Error[0].Exception.Message.Contains(objectNotFoundMessage)) { System.Threading.Thread.Sleep(1000); } else { throw powershell.Streams.Error[0].Exception; } } else { setADGroupComplete = true; } count++; } catch (Exception e) { if (e.Message.Contains(objectNotFoundMessage)) { System.Threading.Thread.Sleep(1000); count++; } else { throw e; } } } if (count == 3) { throw new Exception("Retry count exceeded. May indicate distribution group creation issue"); } else { return(new MSActorReturnMessageModel(SuccessCode, "")); } } else { return(msg); } } command = new PSCommand(); command.AddCommand("New-ADGroup"); command.AddParameter("name", group_name); if (group_description != "") { command.AddParameter("description", group_description); } command.AddParameter("groupcategory", group_category); command.AddParameter("displayname", group_name); command.AddParameter("path", group_ad_path); command.AddParameter("groupscope", group_scope); if (group_info != "") { Hashtable attrHash = new Hashtable { { "info", group_info } }; command.AddParameter("OtherAttributes", attrHash); } command.AddParameter("samaccountname", samaccountname); powershell.Commands = command; powershell.Invoke(); if (powershell.Streams.Error.Count > 0) { throw powershell.Streams.Error[0].Exception; } powershell.Streams.ClearStreams(); MSActorReturnMessageModel successMessage = new MSActorReturnMessageModel(SuccessCode, ""); return(successMessage); } } catch (Exception e) { if (!e.Message.Contains(groupExistsError)) { return(util.ReportError(e)); } return(util.ReportHiddenError(e)); } }