C# Interface for StreamSend (EMail Marketing System) api
$100-500 USD
Paiement à la livraison
I would like an object-oriented C# library for accessing the StreamSend EMail Marketing Program. (see [url removed, login to view] ... for API see [url removed, login to view]) Final deliverable must include source code.
This will be a very easy project for anyone who has written for the StreamSend API Before.
The Library Must Include the Following:
namespace EMailMarketing
{
interface EMM // EMM stand for EMailMarketing
interface Account : EMM
class StreamSendAccount : [url removed, login to view]
interface MailList : EMM
class StreamSendList : [url removed, login to view]
interface Person : EMM
class StreamSendPerson : [url removed, login to view]
interface EMailBody : EMM
class StreamSendEMailBody : [url removed, login to view]
interface Blast : EMM
class StreamSendBlast : [url removed, login to view]
interface BlastData : EMM
class StreamSendBlastData : [url removed, login to view]
interface BlastReport : EMM
class StreamSendBlastReport : [url removed, login to view]
}
## Deliverables
Here is the Library Structure: READ ALL OF THIS BEFORE BIDDING!
namespace EMailMarketing // for all classes & interfaces that follow
interface EMM // EMM stand for EMailMarketing
{
bool DidLastRemoteCallSucceed;
string LastRemoteCallInformation;
bool AreExceptionsTurnedOn;
// default true, if false, no exceptions thrown
// for bad indexing or connection timeouts
}
interface Account : EMM
{
// same interface as StreamSend Child Below
}
class StreamSendAccount : [url removed, login to view]
{
public properties:
string Name, AdminEMail (automated-email-addr), Username, Password, APICode
int Quota, SoftBounceTollerance
[url removed, login to view] List[int index];
[url removed, login to view] List[string listName];
}
// since SS has no implementation for more than one audience, there will
// be no corresponding C# Audience Object
interface MailList : EMM
{
// same interface as StreamSend Child Below
}
class StreamSendList : [url removed, login to view]
{
public property string Name;
// return whether or not call succeeded
void Subscribe([url removed, login to view] p);
void Unsubscribe([url removed, login to view] p);
// returns whether or not p is in this list
bool doesContain([url removed, login to view] p);
// returns an array of people in this list - including all field data
// all persons will be "isSynchedUpWithDB"
Array of [url removed, login to view] GetAllPersonData();
}
interface Person : EMM
{
// same interface as StreamSend Child Below
}
class StreamSendPerson : [url removed, login to view]
{
properties
string EMail, FirstName, LastName, Street1, Street2, City, State, Zip;
int ;
bool isSynchedUpWithDB; // default false
void readSyncWithDB();
void writeSynchWithDB();
void AddLabel(string label);
void RemoveLabel(string label);
void RemoveAllLabels();
bool isLabeled(string label);
string getField(string fieldName);
void setField(string fieldName, string setter);
bool UnsubscribeAll(); // returns whether or not call succeeded -- unsubscribing from all lists
}
interface EMailBody : EMM
{
// same interface as StreamSend Child Below
}
class StreamSendEMailBody : [url removed, login to view]
{
properties: string Text, Html;
void SaveAs(string Name);
void Load(string Name);
void Load(int id);
}
interface Blast : EMM
{
// same interface as StreamSend Child Below
}
class StreamSendBlast : [url removed, login to view]
{
properties: FromName, FromEMail, ReplyToName, ReplyToEMail, Subject;
(read-only) int ID;
[url removed, login to view] Body;
// recipients stuff
void IncludeList([url removed, login to view] l);
void ExcludeList([url removed, login to view] l);
void Filter([url removed, login to view] f);
// sending -- track clicks & views by default
void Send();
void Send(DateTime scheduledFor);
void SendTest(string emails_to);
}
interface BlastData : EMM
{
// same interface as StreamSend Child Below
}
class StreamSendBlastData : [url removed, login to view]
{
properties (read-only) : (unique)
int ID;
string Subject;
int People, Delivered, Bounced, Viewers, Clickers, Unsubscribes;
DateTime Sent;
}
interface BlastReport : EMM
{
// same interface as StreamSend Child Below
}
class StreamSendBlastReport : [url removed, login to view]
{
array of [url removed, login to view][];
// for checking to see if a blast has been scheduled, but not sent
bool isBlastScheduledButNotSent(int id);
bool isBlastScheduledButNotSent(string subject);
// time the blast was sent, returns null if no match
DateTime BlastSent(int id);
DateTime BlastSent(string subject);
// for either sent or ready to send
bool isBlastScheduled(int id)
{ return isBlastScheduledButNotSent(id) || (BlastSent(id) != null); }
bool isBlastScheduledButNotSent(string subj);
{ return isBlastScheduledButNotSent(subj) || (BlastSent(subj) != null); }
}
You may add any necessary or convenient members, methods, etc.
This is the minimum and also a look at how I'd like the library to be structured. If you have questions about this library structure or logistics, contact me and I will clear things up quickly. I am looking for someone who can start on this soon.
Note: I will not even look at your bid unless you write "Super Stream" in your subject heading. This is how I will know you've read all the way through the requirements. If I do not see "Super Stream" in your subject heading, I will assume you have not read the requirements and throw away your bid.
Nº du projet : #2800714